セントスで比較的良好なパフォーマンスを発揮するサーバー環境LNMPのセットを構築します。つまり、Linux + Nginx + [MySQL](https://cloud.tencent.com/product/cdb?from=10680)+ Phpです。 NginxはApacheよりも軽量であり、nginxの公式Webサイトでnginxによって処理される同時実行量は100,000であるためです。したがって、Webサイトがこのように大量の同時実行に直面している場合、サーバープログラムとしてNginxを使用することは確かに良い選択ですが、LAMP環境を使用する場合、phpの実行プロセスはmod-phpのようなapacheモジュールを使用することです。 、ただし、LNMPを使用する場合は、php-fpmと呼ばれる別のプロセスを使用して処理を完了し、Nginx自体も独立したプロセスであるため、LAMP環境よりも1つ多くのプロセスを使用します。
mysql を構成します
mysql5.5を解凍すると、configureファイルが見つかりません。cmakeのみを使用できます。デフォルトのLinuxシステムにはcmakeがないため、cmakeコマンドが見つからないことが表示されます。解決策:yum install cmake
Mysqlのダウンロード: wget ** [ http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.14.tar.gz ](http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.14.tar.gz)ユーザーグループの追加:/ usr / sbin / groupadd mysql **** / usr / sbin / useradd -g mysql mysql 基本操作:tar xvf mysql-5.5.14.tar.gz **** cd mysql-5.5.14 / インストールに必要なシステムライブラリ関連のライブラリファイル:yum install -y gcc gcc-c ++ gcc-g77 autoconf automake zlib * fiex * libxml * ncurses-devel libmcrypt * libtool-ltdl-devel (もちろん、一部の重複は自動的に無視されます)コマンドの実行:cmake -DCMAKE_INSTALL_PREFIX = / usr / local / mysql \ **** -DMYSQL_UNIX_ADDR = /tmp/mysql.sock \ **** -DDEFAULT_CHARSET = utf8 \ **** -DDEFAULT_COLLATION = utf8_general_ci \ **** -DWITH_EXTRA_CHARSETS:STRING = utf8、gbk \ **** -DWITH_MYISAM_STORAGE_ENGINE = 1 \ ** ** -DWITH_INNOBASE_STORAGE_ENGINE = 1 \ **** -DWITH_MEMORY_STORAGE_ENGINE = 1 \ **** -DWITH_READLINE = 1 \ **** -DENABLED_LOCAL_INFILE = 1 \ **** -DMYSQL_DATADIR = / usr / local / mysql / data \ -DMYSQL_USER = mysql パラメータの説明: DCMAKE_INSTALL_PREFIX = / usr / local / mysql#mysqlインストールのメインディレクトリ。デフォルトは/ usr / local / mysql **** DMYSQL_DATADIR = / usr / local / mysql / data#mysqlデータベースファイルのストレージディレクトリ。 DMYSQL_UNIX_ADDR = / usr / local / mysql / mysql.sock#システムソケットファイル(.sock)設定、ファイルパスに基づくソケットをカスタマイズできます。リンク、する必要があります絶対パスである必要があります DSYSCONFDIR = / etc #mysql構成ファイルmy.cnfのストレージアドレス。デフォルトは/ etcの下にあります DMYSQL_TCP_PORT = 3306#データベースサーバーのリスニングポート、デフォルトは3306 ** ** DENABLED_LOCAL_INFILE = 1#ローカルからのデータのインポートを許可 DWITH_READLINE = 1 #ショートカットキー関数 DWITH_SSL = yes #SSLをサポート DMYSQL_USER = mysql#デフォルトはmysql **** //次の3つはデータベースエンコーディング設定です DEXTRA_CHARSETS = all#すべての拡張文字セットをインストールします。デフォルトはall **** DDEFAULT_CHARSET = utf8#utf8文字を使用します DDEFAULT_COLLATION = utf8_general_ci#チェック文字*** //次の5つは、**** DWITH_MYISAM_STORAGE_ENGINE = 1#myisamストレージエンジンのインストール**** DWITH_INNOBASE_STORAGE_ENGINE = 1#innodbストレージエンジンのインストール**** DWITH_ARCHIVE_STORAGE_ENGINE = 1#にあるデータベースストレージエンジンです。アーカイブストレージエンジンをインストールします**** DWITH_BLACKHOLE_STORAGE_ENGINE = 1#ブラックホールストレージエンジンをインストールします**** DWITH_PARTITION_STORAGE_ENGINE = 1#データベースパーティションをインストールします****コンパイル中に次のエラーが発生した場合**
mysqld.cc: In function ‘void handle_connections_sockets()’:
主にlibmcrypt関連のパッケージがインストールされていないため
インストールが完了した直後にyuminstall libmcrypt * -yを使用し、再コンパイルします
コンパイル中に例外が発生します。再コンパイルするときは、最初にmysqlディレクトリのCMakeCache.txtファイルを削除してから、コンパイルする必要があります。 ! !
インストールを実行します** make **** make install 権限:chmod + w / usr / local / mysql **** chown -R mysql:mysql / usr / local / mysql #changeディレクトリの所有者とグループ ln -s /usr/local/mysql/lib/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.16 **** cd support-files / **** cp my-large.cnf /etc/my.cnf#ラージサーバーに適したデフォルトの構成ファイルを選択します cpmysql.server /etc/init.d/mysqld****#スタートアップファイルをコピーします**** 1。必要に応じて、mysql構成my.cnf **** vi /etc/my.cnf を変更し、[mysqld]の下に追加してください(インストールされたmysqlは/ usr / local / mysqlフォルダーにあります) ** basedir = / usr / local / mysql **** datadir = / usr / local / mysql / data **** log-error = /usr/local/mysql/mysql_error.log **** pid-file = /usr/local/mysql/data/mysql.pid **** default-storage-engine = MyISAM **** user = mysql **** 2.mysql初期化インストールは次のコマンドを実行します** / usr / local / mysql / scripts / mysql_install_db \ **** --basedir = / usr / local / mysql \ **** --datadir = / usr / local / mysql / data \ **** --user = mysql ** ** 3.mysqlを追加して起動します**** chmod + x /etc/init.d/mysqld****vi /etc/init.d/mysqld(このファイルを編集し、次の変数を見つけて変更します:) ****
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
次のコマンドの実行を続行します。** chkconfig --add mysqld **** chkconfig --level 345 mysqld on **
将来使いやすいMySQLの環境変数を構成します
export PATH=/usr/local/mysql/bin:$PATH
**4. Start mysql **** service mysqld start **** Set password **** Safe mode login #mysqld_safe --user = mysql --skip-grant-tables --skip-networking& #mysql -u root mysql **** mysql> UPDATE user SET Password = PASSWORD( 'newpassword')where USER = 'root'; **** mysql> FLUSH PRIVILEGES; **** mysql> quit **** #/ etc / init.d / mysql restart ****#mysql -uroot -p ****パスワードを入力してください:<新しいパスワードを入力してくださいnewpassword> **もちろん、ユーザーは承認を忘れないでください。そうしないと、mysqlにログインできません。サーバ
Mysqlをrpm の形式でインストールします。インストールに必要なソフトウェアをダウンロードします rpm -ivh libaio-0.3.93-4.i386.rpm **** rpm -ivh MySQL-server-5.5.14-1.rhel5 .i386.rpm **** rpm -ivh MySQL-client-5.5.14-1.rhel5.i386.rpm **** rpm -ivh MySQL-shared-5.5.14-1.rhel5.i386.rpm ** ** rpm -ivh MySQL-devel-5.5.14-1.rhel5.i386.rpm **** MySQLサーバーを起動します** service mysql start パスワードを設定します言及しません** ** Linuxはrpmを使用してmysqlを再インストールします。完了後、Mysqlは起動時にエラーを報告し、pidファイルが見つかりません。**** pidファイルのMySQL..Managerを起動すると、ファイルを更新せずに終了します。[失敗] 現時点では起動するにはセーフモードを使用する必要があります / usr / bin / mysqld_safe --user = mysql 古いMysqlプロセスを強制終了する場合は特に注意してください。エラーがある場合は、次の解決策を参照してください。 1。はい/usr/local/mysql/data/rekfan.pidファイルには書き込み権限がありません**
解決策:許可を与え、「chown -R mysql:mysql / var / data」「chmod-R755 / usr / local / mysql / data」を実行して、mysqldを再起動します。
2. プロセスにはすでにmysqlプロセスが含まれている可能性があります
解決策:コマンド「ps-ef | grep mysqld」を使用して、mysqldプロセスがあるかどうかを確認します。存在する場合は、「kill -9 process number」を使用して強制終了し、mysqldを再起動します。
**3. mysqlがマシンにインストールされるのは2回目であり、サービスの起動に影響を与えるデータが残っている可能性があります。 ****
解決策:mysqlデータディレクトリ/データに移動して確認します。mysql-bin.indexが存在する場合は、できるだけ早く削除します。これが原因です。私はそれを解決するために3番目の方法を使用しました! [http://blog.rekfan.com/?p=186](http://blog.rekfan.com/?p=186)
**4. MySQLは、起動時に構成ファイルが指定されていない場合、/ etc / my.cnf構成ファイルを使用します。このファイルを開いて、[mysqld]セクションでデータディレクトリ(datadir)が指定されているかどうかを確認してください。 ****
解決策:[mysqld]の下に次の行を設定してください:datadir = / usr / local / mysql / data
5. スキップフェデレーションフィールドの問題
解決策:/etc/my.cnfファイルにコメントアウトされていないスキップフェデレーションフィールドがあるかどうかを確認します。スキップフェデレーションフィールドがある場合は、すぐにコメントアウトします。
6. エラーログディレクトリが存在しません
解決策:「chown」「chmod」コマンドを使用して、mysqlの所有者とアクセス許可を付与します
7. selinuxはセキュリティシステムです。centosシステムの場合、selinuxはデフォルトで有効になります
解決策:それを閉じ、/ etc / selinux / configを開き、SELINUX = enforcingをSELINUX = disabledに変更し、保存して終了し、マシンを再起動します。
**mysqlのインストール時に次の同様のエラーが発生した場合、****パッケージmysql-libs-****のファイルと競合する場合は、以前にインストールしたmysql関連パッケージをアンインストールする必要があります。 注:rpmインストールなどを使用する場合、コンパイルやインストールなどのインストールパスを選択することはできません。次に、コマンドを使用してmysqlがインストールされている場所を確認します。 [root @ localhost〜] #find / -name mysql -print **** /etc/logrotate.d/mysql **** /etc/rc.d/init.d/mysql **** / var / lib / mysql **** / var / lib / mysql / mysql **** / var / lock / subsys / mysql **** / usr / lib / mysql **** / usr / include / mysql **** / usr / share / mysql **** / usr / bin / mysql ****およびデータはデフォルトで配置されます:/ var / lib / mysql **** mysqlはデフォルトでインストールされます:/ usr / share / mysql **
**nginx **をコンパイルしてインストールします
新しいcentosにはデフォルトでhttpdサービスが付属しているため、nginxをインストールする前にnginxに付属しているhttpdをアンインストールし、マシンにサービスがインストールされているかどうかを確認して、
yum list | grep httpdまたは使用:rpm –qa | grep httpd
httpdcentosをアンインストールする方法は次のとおりです。
rpm -e httpd-2.2.3
それ以降のバージョン番号が不完全であるかどうかは関係ありません。依存関係がある場合は、それをアンインストールできず、さらに--nodpesパラメーターもあります。依存関係を確認せずに強制的に削除すると、httpdのみが削除され、依存関係のある他のソフトウェアは削除されませんが、システムにhttpdがないため、これらのソフトウェアは実行されません。これはいわゆるクリーン削除です。
yum -y remove httpdメソッドは、httpdに依存するすべてのソフトウェアを削除することです。 php、mod_sslなど。これはきれいです。
まず、Nginx公式ウェブサイト[http://nginx.org](http://nginx.org/)の右側にあるダウンロードページにアクセスして、必要なNginxソースコードパッケージをダウンロードします。次に示すように、Linuxで安定したバージョンを選択するように注意してください。
./configureを実行した後、後続のコンパイルプロセスを容易にするために、一連のチェックが実行されます。プロセス中に次のエラーが報告される場合があります。
1、. / configure:エラー:HTTPリライトモジュールにはPCREライブラリが必要です問題を解決するにはpcre-develをインストールしてください yum -y install pcre-devel **** 2 .. / configure:エラー:HTTPキャッシュモジュールOpenSSLライブラリのmd5関数が必要です。--without-http-cacheオプションを使用してモジュールを無効にするか、OpenSSLライブラリをシステムにインストールするか、-with-http_ssl_moduleを使用してnginxを使用してソースからOpenSSLライブラリを静的に構築できます。 --with-openssl =
解決:
yum -y install openssl openssl-devel
3、. / configure:error:HTTP gzipモジュールにはzlibライブラリが必要です****解決策:
yum install -y zlib-devel
ワンステップソリューション:yum -y install pcre-devel openssl openssl-develzlib-devel
makeを実行すると、起動後にインストールプロセスのmakefileが生成されます。操作は次のとおりです。エラーが報告された後、プロンプトに従ってインストールすると、#make install操作を実行でき、インストールが完了します。Nginxのデフォルトのインストールパスは/ usr /です。次に、local / nginxディレクトリの下でNginxサービスを開始し、/ usr / local / nginx / sbinディレクトリに入り、。/ nginxを実行してNginxサービスを開始します。
もちろん、起動時にポート競合エラーが発生する可能性があります。
Nginx [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
直接的な方法は、ポート占有プロセスを閉じることです(推奨されません。ポートを変更するか、プログラムを確認することをお勧めします)。sudofuser-k 80 / tcpまたは
netstat -tunlp |grep 80
nginx操作の一般的なコマンド:start:./ nginx stop:./ nginx -sstopまたは./nginx-s quit restart:./ nginx -sreloadまたはservicenginx reloadバージョン番号の表示:./ nginx-v構成ファイルかどうかを確認します正解:/ nginx -t
phpをコンパイルしてインストールします
まず、[http://php.net](http://php.net/)の公式Webサイトにアクセスしてphpソースコードパッケージをダウンロードし、次に/ usr / local /ディレクトリに移動して解凍します。たとえば、phpに解凍してから、cdします。
最初に依存関係パッケージをインストールします(2つの方法)。
1、 yum installgccmake gd-devellibjpeg-devellibpng-devellibxml2-develbzip2-devellibcurl-devel-y
2、 個別にダウンロードしてインストールしますが、以下で構成する場合は、-with-jpeg-dir = / usr / local / jpegなどの場所を個別に指定してください。
./configure--prefix=/usr/local/php-5.6--with-config-file-path=/usr/local/php-5.6/etc--with-bz2--with-curl--enable-を実行しますftp--enable-sockets--disable-ipv6--with-gd--with-jpeg-dir = / usr / local--with-png-dir = / usr / local--with-freetype-dir = / usr / local--enable-gd-native-ttf--with-iconv-dir = / usr / local--enable-mbstring--enable-calendar--with-gettext--with-libxml-dir = / usr / local --with-zlib--with-pdo-mysql = mysqlnd--with-mysqli = mysqlnd--with-mysql = mysqlnd--enable-dom--enable-xml--enable-fpm(php5.3以降はfpmパッチパッケージ付き)
次に、makeを続行してinstallを作成します
phpを構成する
cp php.ini-production/usr/local/php-5.6/etc/php.ini
php-fpmを構成します
cp /usr/local/php-5.6/etc/php-fpm.conf.default/usr/local/php-5.6/etc/php-fpm.conf
**php-fpm **を開始します
/usr/local/php-5.6/sbin/php-fpm
上記のコマンドを実行します。エラーが報告されない場合は、通常、起動が正常であることを意味します。確信が持てない場合は、ポートからPHPが起動しているかどうかを判断し、コマンドを実行することもできます。
netstat -lnt | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
**nginxとphp **をリンクする
phpフォルダーに入り、コマンドcp php.ini-development php.iniを実行し、php.iniのいくつかのパラメーターを変更し、nginx構成ファイルを次のように変更します。
location / {
root /www;
index index.html index.htm index.php;
}
location ~ .php$ {
root /www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www$fastcgi_script_name;
include fastcgi_params;
}
プロジェクトのルートディレクトリはwwwです。構成ファイルを変更する必要はありません。コメントをいくつか削除してから、phpテストページindex.phpを作成してください。
nginxで最も一般的に使用される方法は、tcp / ipプロトコルを使用してphpfastcgiインターフェイスに接続することです。したがって、phpに接続するには、最初にfastcgiプログラムを起動する必要があります。
開始方法:
/usr/local/bin/php-cgi -b 127.0.0.1:9000 -c /usr/local/php5.6/etc/php.ini &
構成ファイルの場所を指定する場合は、**-c **オプションを使用できます
nginxサーバーは、静的Webページ分析(html)、ccsファイル、jpg、pngファイルなどのページ内の他のオブジェクトを含むすべてのクライアント要求を担当しますが、クライアントがphpページ要求またはphpソースコード分析を要求する必要がある場合は、nginxに注意してください。ページはfastcgiインターフェースに渡され、php-cgiプログラムによって解析されます。
次に、**。/ nginx **を実行します。成功して次のページが表示された場合、構成は成功しています。
phpMyAdminを使用すると、MySQLの接続をテストでき、Mysql管理ツールをインストールするのと同じこともできます**。テスト結果は次のとおりで、環境全体を構成したことを示しています**。
Recommended Posts