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つのステップに分けられます.
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が独自のセキュリティチェック手順を使用するかを選択できます.
  • ROOTパスワード
  • の設定(変更)
  • 匿名アカウント
  • を削除
  • ROOTのリモートログインを許可しない
  • testデータベース
  • から削除
  • リビルド権限テーブル
  • 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.データベースの作成、ユーザーの作成、リモート接続の許可
    この例では、次のパラメータを使用します.
  • データベース(名前)=webdb
  • ユーザー=webdb_user
  • リモートIP=10.0.15.25
  • パスワード=password 123
  • 権限=ALL
  • 例は次のとおりです.
    ## 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のモジュール
  • 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
    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の設定と注意事項.