Fedora 17/16,CentOS/Red Hat(RHEL)6.3/5.8配置LEMP(訳)
LEMPとは?
LEMP(Linux,Nginx,MySQL,PHP)もLAMPに比べて譲れない.
初心者にとって、nginxの構成はもっと簡単で、このような原因に基づいて、NginxはApacheより強いと言われています.
もちろん、NginxとApacheはいったい誰がもっと優れているのかは私がはっきり言えないが、多くの大企業がこの選択に直面しているのも難しい.幸いなことに、これは本稿の議論の範囲ではない.
LEMPのインストールを教えます
Linux、Nginx、MySQL、PHP-FPMについては、公式ドキュメントに詳細なインストール説明ドキュメントがあります.
このガイドは、Fedora 17/16/15/14、Centos 6.3/6.2/6.1/6/5.8、RedHat 6.3/6.3/6.1/6/5.8の上でYUMの方法でLEMPサービスを導入することを詳しく指導しようとしています.
総じて言えば、3つのステップに分けられます.
以上の一歩一歩は、分かれています.MySQとNginxとPHPは実はあまり依存関係がありません.
MySQL 5をインストールします.5
MySQLは関係型データベースであり、かなりのCMSがこのデータベースを使用しており、ほとんどのオープンソースPHPアプリケーションはMySQLであり、少なくともサポートされていると言える.例えば海外の:drupal,joomla,wordpress.国内の:dedecms、帝国など.
1.権限の変更
2.Remi repositoryのインストール
Fedora
CentOSとRed Had(RHEL)
3.使用可能なMySQLバージョンの確認
Fedora 18,17,16,15,14,13,12
CentOS 6.3/6.2/6.1/6/5.8およびRed Hat(RHEL)6.3/6.2/6.1/6/5.8
正常であれば、出力はこのようになります
4.MySLQ 5.5.29のアップグレードまたはインストール
Fedora 18,17,16,15,14,13,12
CentOS 6.3/6.2/6.1/6/5.8およびRed Hat(RHEL)6.3/6.2/6.1/6/5.8
5.MySQLサービスを起動し、システムに従って起動するように設定する
Fedora 18/17/16
Fedora 15/14/13/12/11,CentOS 6.3/6.2/6.1/6.1/6.8およびRed Hat(RHEL)6.3/6.2/6.1/5.8
6.MySQLセキュリティインストール
このステップは無視しやすいが、特に重要だ.以下のタスクを手動で完了するか、MySQLが独自のセキュリティチェック手順を使用するかを選択できます. ROOTパスワード の設定(変更)匿名アカウント を削除 ROOTのリモートログインを許可しない testデータベース から削除リビルド権限テーブル MySQLによるセキュリティチェック:
出力は次のようになります.
注意:特別な理由でMySQLが持っているセキュリティチェックを使用したくない場合は、少なくともROOTパスワードを変更する必要があります.
7.ローカル接続MySQLデータベース
8.データベースの作成、ユーザーの作成、リモート接続の許可
この例では、次のパラメータを使用します.データベース(名前)=webdb ユーザー=webdb_user リモートIP=10.0.15.25 パスワード=password 123 権限=ALL 例は次のとおりです.
リモート接続
1.ファイルの編集/etc/sysconfig/iptables:
2.最後にこの行に参加する
3.ファイアウォールの再起動
4.リモート接続のテスト:
NginxとPHP-FPMのインストール
1.ユーザー権限の変更
2.依存するrepositioryのインストール
Fedora 17/16/15/14 Remi repository
CentOS 6.3/6.2/6.1/6/5.8 and Red Hat (RHEL) 6.3/6.2/6.1/6/5.8 Remi repository
CentOS 6.3/6.2/6.1/6/5.8 and Red Hat(RHEL)6.3/6.2/6.1/6/5.8ならyumソースにnginxを追加する必要があります.ファイルの作成/etc/yum.repos.d/nginx.repo、次の内容CentOSを追加します.
Red Hat (RHEL)
3.nginx,PHP 5を取り付ける.4.10とPHP-FPM
Fedora 17/16/15/14, CentOS 6.3/5.8 and Red Hat (RHEL) 6.3/5.8
CentOS 6.3/5.8 and Red Hat (RHEL) 6.3/5.8
4.PHP 5を取り付ける.4.10のモジュール APC(php-pecl-apc)-APCキャッシュおよび加速 CLI(php-cli)-コマンドラインインタフェース PEAR(php-pear)-PHPの拡張ライブラリ PDO(php-pdo)-データベースに接続された抽象層のライブラリ MySQL(php-mysql)-PHPがmysqlを使用できるようにするモジュール PostgreSQL(php-pgsql)-PHPがPostgreSQLを使用できるようにするモジュール MongoDB(php-pecl-mongo)-PHPのMongoDB駆動 SQLite(php-sqlite)-SQLite V 2を使用して を拡張 Memcache(php-pecl-memcache)-Memcachedキャッシュシステムを使用できる拡張 Memcached(php-pecl-memcached)-Memcachedキャッシュサービスを使用できる拡張 GD(php-gd)-GDライブラリ XML(php-xml)-XMLライブラリ MBString(php-mbstring)-mbstringライブラリ.多言語文字 を処理できます. MCrypt(php-mcrypt)-文字列暗号化用の標準mcryptライブラリ Fedora 17/16/15/14
CentOS 6.3/5.8 and Red Hat (RHEL) 6.3/5.8
5.httpd(Apache)サービスを停止し、NginxとPHP-FPMサービスを開始する.
httpを停止(Apache)
Nginxを開く
PHP-FPMオン
6.システムの起動に伴ってNginxとPHP-FPMを起動させる
httpの起動をキャンセル
自動起動Nginx
PHP-FPM自動起動
7.NginxとPHP-FPMの構成
例では
必要でないステップ、/var/logディレクトリにログを追加
【注意】私がここでユーザーとユーザーグループがApacheを使用しているのは、PHP-FPMのデフォルトがapacheをユーザーとしているため、カスタマイズすることもできます.
サイトのnginxのプロファイルを作成する
/etc/nginx/nginx.confファイルに次の行を加え、
testsitesを作成する.local仮想サイトファイル
次の内容を/etc/nginx/sites-available/testsiteに追加します.local.これは、最も基本的なサイト構成です.
仮想サイトを/etc/nginx/sites-enabledオープンサイトにリンク
これをlocalドメイン名として/etc/hostsファイルに追加
別のマシンをNginxサーバとして使用する場合は、そのパブリックIPを/etc/hostsに追加します.
8.テスト
テストファイル/srv/www/testsiteを作成します.local/publick_html/index.php
ブラウザのアドレスバーに入力http://testsite.local/あなたのPHP情報が見えます.
リモート接続
1.ファイルの編集/etc/sysconfig/iptables:
2.最後にこの行に参加する
3.ファイアウォールの再起動
4.リモート接続のテスト:ブラウザでドメイン名を開きます.
LEMP(Linux,Nginx,MySQL,PHP)もLAMPに比べて譲れない.
初心者にとって、nginxの構成はもっと簡単で、このような原因に基づいて、NginxはApacheより強いと言われています.
もちろん、NginxとApacheはいったい誰がもっと優れているのかは私がはっきり言えないが、多くの大企業がこの選択に直面しているのも難しい.幸いなことに、これは本稿の議論の範囲ではない.
LEMPのインストールを教えます
Linux、Nginx、MySQL、PHP-FPMについては、公式ドキュメントに詳細なインストール説明ドキュメントがあります.
このガイドは、Fedora 17/16/15/14、Centos 6.3/6.2/6.1/6/5.8、RedHat 6.3/6.3/6.1/6/5.8の上でYUMの方法でLEMPサービスを導入することを詳しく指導しようとしています.
総じて言えば、3つのステップに分けられます.
1. Linux( , Linux )
2. MySQL
3. Nginx PHP(PHP-FPM)
以上の一歩一歩は、分かれています.MySQとNginxとPHPは実はあまり依存関係がありません.
MySQL 5をインストールします.5
MySQLは関係型データベースであり、かなりのCMSがこのデータベースを使用しており、ほとんどのオープンソースPHPアプリケーションはMySQLであり、少なくともサポートされていると言える.例えば海外の:drupal,joomla,wordpress.国内の:dedecms、帝国など.
, Mysql ,
mysql_upgrade
1.権限の変更
su -
## ##
sudo -i
2.Remi repositoryのインストール
Fedora
## Remi Dependency on Fedora 18, 17, 16
rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
## Fedora 18 ##
rpm -Uvh http://rpms.famillecollet.com/remi-release-18.rpm
## Fedora 17 ##
rpm -Uvh http://rpms.famillecollet.com/remi-release-17.rpm
## Fedora 16 ##
rpm -Uvh http://rpms.famillecollet.com/remi-release-16.rpm
## Fedora 15 ##
rpm -Uvh http://rpms.famillecollet.com/remi-release-15.rpm
## Fedora 14 ##
rpm -Uvh http://rpms.famillecollet.com/remi-release-14.rpm
## Fedora 13 ##
rpm -Uvh http://rpms.famillecollet.com/remi-release-13.rpm
## Fedora 12 ##
rpm -Uvh http://rpms.famillecollet.com/remi-release-12.rpm
CentOSとRed Had(RHEL)
## Remi Dependency on CentOS 6 and Red Hat (RHEL) 6 ##
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
## CentOS 6 and Red Hat (RHEL) 6 ##
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
## Remi Dependency on CentOS 5 and Red Hat (RHEL) 5 ##
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
## CentOS 5 and Red Hat (RHEL) 5 ##
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
3.使用可能なMySQLバージョンの確認
Fedora 18,17,16,15,14,13,12
yum --enablerepo=remi list mysql mysql-server
CentOS 6.3/6.2/6.1/6/5.8およびRed Hat(RHEL)6.3/6.2/6.1/6/5.8
yum --enablerepo=remi,remi-test list mysql mysql-server
正常であれば、出力はこのようになります
Loaded plugins: changelog, fastestmirror, presto, refresh-packagekit
...
remi | 3.0 kB 00:00
remi/primary_db | 106 kB 00:00
Available Packages
mysql.i686 5.5.29-1.fc14.remi @remi
mysql-server.i686 5.5.29-1.fc14.remi @remi
4.MySLQ 5.5.29のアップグレードまたはインストール
Fedora 18,17,16,15,14,13,12
yum --enablerepo=remi install mysql mysql-server
CentOS 6.3/6.2/6.1/6/5.8およびRed Hat(RHEL)6.3/6.2/6.1/6/5.8
yum --enablerepo=remi,remi-test install mysql mysql-server
5.MySQLサービスを起動し、システムに従って起動するように設定する
Fedora 18/17/16
systemctl start mysqld.service ## use restart after update
systemctl enable mysqld.service
Fedora 15/14/13/12/11,CentOS 6.3/6.2/6.1/6.1/6.8およびRed Hat(RHEL)6.3/6.2/6.1/5.8
/etc/init.d/mysqld start ## use restart after update
## ##
service mysqld start ## use restart after update
chkconfig --levels 235 mysqld on
6.MySQLセキュリティインストール
このステップは無視しやすいが、特に重要だ.以下のタスクを手動で完了するか、MySQLが独自のセキュリティチェック手順を使用するかを選択できます.
/usr/bin/mysql_secure_installation
出力は次のようになります.
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we\'ll need the current
password for the root user. If you\'ve just installed MySQL, and
you haven\'t set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y
... Success!
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y
... Success!
Cleaning up...
All done! If you\'ve completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!
注意:特別な理由でMySQLが持っているセキュリティチェックを使用したくない場合は、少なくともROOTパスワードを変更する必要があります.
mysqladmin -u root password [your_password_here]
## Example ##
mysqladmin -u root password myownsecrectpass
7.ローカル接続MySQLデータベース
mysql -u root -p
## ##
mysql -h localhost -u root -p
8.データベースの作成、ユーザーの作成、リモート接続の許可
この例では、次のパラメータを使用します.
## CREATE DATABASE ##
mysql> CREATE DATABASE webdb;
## CREATE USER ##
mysql> CREATE USER 'webdb_user'@'10.0.15.25' IDENTIFIED BY 'password123';
## GRANT PERMISSIONS ##
mysql> GRANT ALL ON webdb.* TO 'webdb_user'@'10.0.15.25';
## FLUSH PRIVILEGES, Tell the server TO reload the GRANT TABLES ##
mysql> FLUSH PRIVILEGES;
リモート接続
1.ファイルの編集/etc/sysconfig/iptables:
vim /etc/sysconfig/iptables
2.最後にこの行に参加する
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
3.ファイアウォールの再起動
service iptables restart
## OR ##
/etc/init.d/iptables restart
4.リモート接続のテスト:
mysql -h dbserver_name_or_ip_address -u webdb_user -p webdb
NginxとPHP-FPMのインストール
1.ユーザー権限の変更
sudo -i
## ##
su -
2.依存するrepositioryのインストール
Fedora 17/16/15/14 Remi repository
## Remi Dependency on Fedora 17, 16
rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
## Fedora 17 ##
rpm -Uvh http://rpms.famillecollet.com/remi-release-17.rpm
## Fedora 16 ##
rpm -Uvh http://rpms.famillecollet.com/remi-release-16.rpm
## Fedora 15 ##
rpm -Uvh http://rpms.famillecollet.com/remi-release-15.rpm
## Fedora 14 ##
rpm -Uvh http://rpms.famillecollet.com/remi-release-14.rpm
CentOS 6.3/6.2/6.1/6/5.8 and Red Hat (RHEL) 6.3/6.2/6.1/6/5.8 Remi repository
## Remi Dependency on CentOS 6 and Red Hat (RHEL) 6 ##
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
## CentOS 6 and Red Hat (RHEL) 6 ##
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
## Remi Dependency on CentOS 5 and Red Hat (RHEL) 5 ##
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
## CentOS 5 and Red Hat (RHEL) 5 ##
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
CentOS 6.3/6.2/6.1/6/5.8 and Red Hat(RHEL)6.3/6.2/6.1/6/5.8ならyumソースにnginxを追加する必要があります.ファイルの作成/etc/yum.repos.d/nginx.repo、次の内容CentOSを追加します.
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
Red Hat (RHEL)
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/
gpgcheck=0
enabled=1
3.nginx,PHP 5を取り付ける.4.10とPHP-FPM
Fedora 17/16/15/14, CentOS 6.3/5.8 and Red Hat (RHEL) 6.3/5.8
yum --enablerepo=remi install nginx php php-fpm php-common
CentOS 6.3/5.8 and Red Hat (RHEL) 6.3/5.8
yum --enablerepo=remi,remi-test install nginx php php-fpm php-common
4.PHP 5を取り付ける.4.10のモジュール
yum --enablerepo=remi install php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml
CentOS 6.3/5.8 and Red Hat (RHEL) 6.3/5.8
yum --enablerepo=remi,remi-test install php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml
5.httpd(Apache)サービスを停止し、NginxとPHP-FPMサービスを開始する.
httpを停止(Apache)
/etc/init.d/httpd stop
## OR ##
service httpd stop
Nginxを開く
/etc/init.d/nginx start ## use restart after update
## OR ##
service nginx start ## use restart after update
PHP-FPMオン
/etc/init.d/php-fpm start ## use restart after update
## OR ##
service php-fpm start ## use restart after update
6.システムの起動に伴ってNginxとPHP-FPMを起動させる
httpの起動をキャンセル
chkconfig httpd off
自動起動Nginx
chkconfig --add nginx
chkconfig --levels 235 nginx on
PHP-FPM自動起動
chkconfig --add php-fpm
chkconfig --levels 235 php-fpm on
7.NginxとPHP-FPMの構成
例では
testsite.local
をサイトとして使用しますが、これは正式なサイトではありません.公式サイトはblog.mlskill.com
のようです## public_html directory and logs directory ##
mkdir -p /srv/www/testsite.local/public_html
mkdir /srv/www/testsite.local/logs
chown -R apache:apache /srv/www/testsite.local
必要でないステップ、/var/logディレクトリにログを追加
## public_html directory and logs directory ##
mkdir -p /srv/www/testsite.local/public_html
mkdir -p /var/log/nginx/testsite.local
chown -R apache:apache /srv/www/testsite.local
chown -R nginx:nginx /var/log/nginx
【注意】私がここでユーザーとユーザーグループがApacheを使用しているのは、PHP-FPMのデフォルトがapacheをユーザーとしているため、カスタマイズすることもできます.
サイトのnginxのプロファイルを作成する
mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled
/etc/nginx/nginx.confファイルに次の行を加え、
include /etc/nginx/conf.d/*.conf
行の後ろ(httpの括弧の中)に## Load virtual host conf files. ##
include /etc/nginx/sites-enabled/*;
testsitesを作成する.local仮想サイトファイル
次の内容を/etc/nginx/sites-available/testsiteに追加します.local.これは、最も基本的なサイト構成です.
server {
server_name testsite.local;
access_log /srv/www/testsite.local/logs/access.log;
error_log /srv/www/testsite.local/logs/error.log;
root /srv/www/testsite.local/public_html;
location / {
index index.html index.htm index.php;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/testsite.local/public_html$fastcgi_script_name;
}
}
仮想サイトを/etc/nginx/sites-enabledオープンサイトにリンク
cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/testsite.local
service nginx restart
これをlocalドメイン名として/etc/hostsファイルに追加
127.0.0.1 localhost.localdomain localhost testsite.local
別のマシンをNginxサーバとして使用する場合は、そのパブリックIPを/etc/hostsに追加します.
10.0.2.19 wordpress
8.テスト
テストファイル/srv/www/testsiteを作成します.local/publick_html/index.php
<?php
echo phpinfo();
?>
ブラウザのアドレスバーに入力http://testsite.local/あなたのPHP情報が見えます.
リモート接続
1.ファイルの編集/etc/sysconfig/iptables:
vim /etc/sysconfig/iptables
2.最後にこの行に参加する
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
3.ファイアウォールの再起動
service iptables restart
## OR ##
/etc/init.d/iptables restart
4.リモート接続のテスト:ブラウザでドメイン名を開きます.
http://your.domain
予告:1.NginxとPHP-FPMの詳細設定と加速面の設定.2.APCの設定と注意事項.