ホームページ >データベース >mysql チュートリアル >CentOS に Nginx+MySQL+PHP をコンパイルしてインストールする方法
準備
1. ファイアウォールの設定
centos 7.x はデフォルトでファイアウォールを使用しますが、ここでは iptables に変更します。ファイアウォール。
1. ファイアウォールを閉じます:
systemctl stop firewalld.service #ファイアウォールを停止
systemctl disable firewalld.service #ファイアウォールの起動を無効にする
2インストール iptables firewall
yum install iptables-services #Install
vi /etc/sysconfig/iptables #ファイアウォール設定ファイルの編集
# iptables サービスのサンプル設定
# これを手動で編集することも、system-config-firewall を使用することもできます
## このデフォルト設定に追加のポート/サービスを追加するように要求しないでください*フィルター
:input accept [0:0]
:forward accept [0:0]
:output accept [0:0]
-a input -m state -- 状態関連、確立 -j accept
-a input -p icmp -j accept
-a input -i lo -j accept
-a input -p tcp - m state --state new -m tcp --dport 22 -j accept
-a input -p tcp -m state --state new -m tcp --dport 80 -j accept
-a input -p tcp -m state --state new -m tcp --dport 3306 -j accept
-a input -j raise --reject-with icmp-host-prohibited
-a forward -j respect --reject-with icmp-host-prohibited
commit
:wq! #保存して終了
systemctl iptables を再起動します。 service #最後にファイアウォールを再起動して設定を有効にします
systemctl Enable iptables.service #ブート時にファイアウォールが開始するように設定します
/usr/libexec/iptables/iptables.init restart #再起動ファイアウォール
2. selinuxvi /etc/selinux/config
#selinux=enforcing #コメントアウト
を閉じます。 #selinuxtype=targeted #コメントアウト
selinux=disabled #Add
:wq! #保存して終了
#setenforce 0 #設定をすぐに有効にする3. システム規約
ソフトウェア ソース コード パッケージの保存場所:/usr/local/src
ソース コード パッケージのコンパイルおよびインストール場所:/usr/local/ソフトウェア名4. ソフトウェア パッケージをダウンロードします。
1. nginx
http://nginx.org/download/nginx-1.10をダウンロードします。 3.tar.gz2.mysql## をダウンロードします#https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.16.tar.gz
3. php
http://cn2 .php.net/distributions/php-7.1.2.tar.gz
4. cmake (mysql コンパイル ツール) をダウンロード
https://cmake.org/files/v3.7 /cmake-3.7.2.tar.gz
5. pcre のダウンロード (nginx 擬似静的サポート)
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
6. openssl (nginx 拡張機能) をダウンロード
https ://www.openssl.org/source/openssl-1.1.0e.tar .gz
7. zlib (nginx 拡張機能) のダウンロード
http://www.zlib.net/ zlib-1.2.11.tar.gz
8. libmcrypt (php 拡張機能) をダウンロード
https://nchc.dl.sourceforge.net/project/mcrypt/libmcrypt/2.5.8 /libmcrypt-2.5.8.tar.gz
9、yasm (php 拡張子)
http://www.tortall.net/projects/yasm/releases/yasm-1.3 をダウンロードします。 0.tar.gz
10、t1lib (php 拡張子)
http://download.freenas.org/distfiles/t1lib-5.1.2.tar.gz
11. gd ライブラリのインストール パッケージをダウンロードする
#https://github.com/libgd/libgd/releases/download/gd-2.1.1/libgd-2.1.1.tar.gz12、libvpx (gd ライブラリに必要)#https:/ /codeload.github.com/webmproject/libvpx/tar.gz/v1.3.0
13.tiff (gd ライブラリに必要) gd ライブラリ)
#http://download.osgeo.org/libtiff/ tiff-4.0.7.tar.gz14、libpng (gd ライブラリに必要)ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng -1.6.28.tar.gz15、freetype (gd ライブラリに必要)http://download.savannah.gnu.org/releases/freetype/freetype-2.7.1.tar.gz16、jpegsrc (gd ライブラリで必要)http:/ /www.ijg.org/files/jpegsrc.v9b.tar.gz17、ブースト (mysql のコンパイルに必要)https://ufpr.dl.sourceforge.net/project /boost/boost/1.59.0/boost_1_59_0.tar.gz上記のソフトウェア パッケージは /usr/local/src ディレクトリにアップロードされます5. コンパイル ツールとライブラリをインストールしますファイル (yum コマンドを使用してインストールします)
yum install -y apr* autoconf automake bison bzip2 bzip2 * cloog-ppl compat* cppcurlcurl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c gtk -devel gd gettext gettext-devel glibc カーネル カーネルヘッダー keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc -devel libtool* libgomp libxml2 libxml2- devel libxpm* libxml* libxaw-devel libxmu-devel libtiff libtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php -common php-gdpolicycoreutils telnet t1lib t1lib* nasm nasm* wget zlib-develインストールの章
次は、コマンド ラインで Putty ツールを使用してリモートでサーバーにログインします。次の操作1. インストールmysql
1. cmakecd /usr/local/srctar zxvf cmake-3.7.2.tar.gz
をインストールします。 cd cmake-3.7.2./configuremakemake install2. mysqlcd /usr/ をインストールします。 local/srcmkdir -p /usr/local/boostcp boost_1_59_0.tar.gz /usr/local/ boostgroupadd mysql #mysql グループを追加useradd -g mysql mysql -s /bin/false #ユーザー mysql を作成し、mysql グループに参加します。Mysql ユーザーはシステムに直接ログインすることはできません
mkdir -p /data/mysql # mysql データベース ストレージ ディレクトリを作成します
chown -r mysql:mysql /data/mysql #mysql データベース ストレージ ディレクトリのアクセス許可を設定します
mkdir -p /usr/local/mysql #mysql インストールを作成しますdirectory
cd /usr/local/src #ソフトウェア パッケージの保存ディレクトリを入力します
tar zxvf mysql-5.7.16.tar.gz #Extract
cd mysql-5.7 .16 #ディレクトリを入力してください
cmake . -dcmake_install_prefix=/usr/local/mysql -dmysql_datadir=/data/mysql -dwith_innobase_storage_engine=1 -ddefault_charset=utf8 -ddefault_collation=utf8_general_ci -dwith_embedded_server=off -dwith_boost=/ usr/local/boost
注意: -ddownload_boost=1 -dwith_boost=/usr/local/boost パラメーターを使用して、Boost ソフトウェア パッケージをオンラインでインストールできます。サーバーはインターネットに接続されており、ダウンロードが失敗する可能性があります。
Cmake. -dcmake_install_prefix =/USR/LOCAL/MySQL -DMYSQL_DataDIR =/Data/MySQL -UNIX_ADDR =/TMP/MySQL.SOCK -DMYSQL_USER = m YSQL -DDEFAULT_CHARSET = UTF8 -DDEFAULT_COLLATION = UTF8_General_Ci -DENABLED_LOCAL_INFILE = on - dwith_innobase_storage_engine=1 -dwith_federated_storage_engine=1 -dwith_blackhole_storage_engine=1 -dwithout_example_storage_engine=1 -dwith_embedded_server=off -ddownload_boost=1 -dwith_boost=/usr/local/boost
make #Compile
make install # インストール
コンパイル エラー。再コンパイルする前に、コンパイルに失敗したファイルを削除する必要があります。再コンパイルする場合は、古いオブジェクト ファイルとキャッシュ情報をクリアする必要があります。
make clean
rm -f cmakecache.txt
rm -rf /etc/my.cnf #システムのデフォルト構成ファイルを削除します (システムのデフォルト構成ファイルを削除する必要はありません)デフォルトでは存在しません)
cd /usr/local/mysql #mysql インストール ディレクトリを入力します
./bin/mysqld --user=mysql --initialize --basedir=/usr /local/mysql --datadir =/data/mysql #MySQL システム データベースの生成
--initialize はデフォルトでパスワードを生成することを意味し、--initialize-insecure はパスワードを生成しないことを意味し、パスワードは空の。
この行を参照してください [注] root@localhost に対して一時パスワードが生成されます: i>x18*=rav=7
cp /usr/local/mysql/support-files/my - default.cnf /usr/local/mysql/my.cnf
ln -s /usr/local/mysql/my.cnf /etc/my.cnf #/etc ディレクトリにソフトリンクが追加されました
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld #mysql をシステム起動に追加します
chmod 755 /etc/init. d/mysqld #実行権限を増やす
chkconfig mysqld on #ブートに追加
vi /etc/rc.d/init.d/mysqld #Edit
basedir=/ usr/local/mysql #mysql プログラムのインストール パス
datadir=/data/mysql #mysql データベース格納ディレクトリ
:wq! #保存して終了
service mysqld start
#vi /etc/profile #mysql サービスをシステム環境変数に追加します。最後に次の行を追加します。
export path=$path:/usr/local/mysql/bin
:wq! #保存して終了
source /etc/profile #設定をすぐに有効にする
次の 2 行は、myslq ライブラリ ファイルをシステムのデフォルトにリンクします。 phpなどのソフトウェアを使用する場合、mysqlのライブラリファイルのアドレスを指定する必要はありません。
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
mkdir /var/lib/mysql #ディレクトリの作成
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock #ソフトリンクの追加
mysql_secure_installation #mysql パスワードを変更し、以前に生成したパスワード csjlm3dytg.d を入力して Enter を押し、プロンプトに従います。
はいの場合は y|y を押し、いいえの場合は他のキーを押します: y #パスワード セキュリティ プラグインをインストールしますか? y を選択します。
パスワード検証ポリシーには 3 つのレベルがあります: #次のパスワード強度オプションがあります
低長さ >= 8
中長さ >= 8、数値、大文字と小文字の混合、および特殊文字
強い長さ >= 8、数値、大文字と小文字の混合、特殊文字および辞書ファイル
0 = 低、1 = 中、2 = 強力と入力してください: 0 #8 桁で十分であれば 0 を選択し、大文字、小文字、特殊文字などを含める場合は 1 を選択します。
プラグイン validate_password をアンインストールします; #パスワード強度プラグインをアンインストールします
mysql を使用します;
update mysql.user setauthentication_string=password('123456') where user='root' ; #mysql コンソールにログインして変更
alter user 'root'@'localhost ' mysql_native_password として ' 123456' として識別されました; #パスワードの変更
2. nginx
1 をインストールします。pcre
cd /usr/local/ をインストールしますsrc
mkdir /usr/local/pcre
tar zxvf pcre-8.40.tar.gz
cd pcre-8.40
./configure -- prefix=/usr/local /pcre
make
make install
2. openssl
cd /usr/local/src
# をインストールします。 ##mkdir /usr/ local/openssltar zxvf openssl-1.1.0e.tar.gzcd openssl-1.1.0e./config --prefix =/usr/local/ opensslmakemake installvi /etc/profileexport path=$path:/usr/local/ openssl/bin:wq!source /etc/profile3. zlibcd /usr/local/src
# をインストールします。 ##mkdir /usr/ local/zlib
tar zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix =/usr/local/ zlib
make
make install
4. nginx
をインストールします。groupadd www
useradd -g www www -s /bin/false
cd /usr/local/src
tar zxvf nginx-1.10.3.tar.gz
cd nginx-1.10.3
./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.1.0e --with-zlib=/usr/local/src/zlib-1.2.11 --with-pcre=/usr/local/src/pcre-8.40
注意:--with-openssl=/usr/local/src/openssl-1.1.0e --with-zlib=/usr/local/src/zlib-1.2.11 --with-pcre=/usr/local/src/pcre-8.40指向的是源码包解压的路径,而不是安装的路径,否则会报错
make
make install
/usr/local/nginx/sbin/nginx #启动nginx
设置nginx开机启动
vi /etc/rc.d/init.d/nginx #编辑启动文件添加下面内容
############################################################ #!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: nginx is an http(s) server, http(s) reverse \ # proxy and imap/pop3 proxy server # processname: nginx # config: /etc/nginx/nginx.conf # config: /usr/local/nginx/conf/nginx.conf # pidfile: /usr/local/nginx/logs/nginx.pid # source function library. . /etc/rc.d/init.d/functions # source networking configuration. . /etc/sysconfig/network # check that networking is up. [ "$networking" = "no" ] && exit 0 nginx="/usr/local/nginx/sbin/nginx" prog=$(basename $nginx) nginx_conf_file="/usr/local/nginx/conf/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx make_dirs() { # make required directories user=`$nginx -v 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -` if [ -z "`grep $user /etc/passwd`" ]; then useradd -m -s /bin/nologin $user fi options=`$nginx -v 2>&1 | grep 'configure arguments:'` for opt in $options; do if [ `echo $opt | grep '.*-temp-path'` ]; then value=`echo $opt | cut -d "=" -f 2` if [ ! -d "$value" ]; then # echo "creating" $value mkdir -p $value && chown -r $user $value fi fi done } start() { [ -x $nginx ] || exit 5 [ -f $nginx_conf_file ] || exit 6 make_dirs echo -n $"starting $prog: " daemon $nginx -c $nginx_conf_file retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"stopping $prog: " killproc $prog -quit retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { #configtest || return $? stop sleep 1 start } reload() { #configtest || return $? echo -n $"reloading $prog: " killproc $nginx -hup retval=$? echo } force_reload() { restart } configtest() { $nginx -t -c $nginx_conf_file } rh_status() { status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac ############################################################
:wq! #保存退出
chmod 775 /etc/rc.d/init.d/nginx #赋予文件执行权限
chkconfig nginx on #设置开机启动
/etc/rc.d/init.d/nginx restart #重启
在浏览器中打开服务器ip地址,会看到下面的界面,说明nginx安装成功。
三、安装php
1、安装yasm
cd /usr/local/src
tar zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make
make install
2、安装libmcrypt
cd /usr/local/src
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make
make install
3、安装libvpx
cd /usr/local/src
tar zxvf libvpx-1.3.0.tar.gz
cd libvpx-1.3.0
./configure --prefix=/usr/local/libvpx --enable-shared --enable-vp9
make
make install
4、安装tiff
cd /usr/local/src
tar zxvf tiff-4.0.7.tar.gz
cd tiff-4.0.7
./configure --prefix=/usr/local/tiff --enable-shared
make
make install
5、安装libpng
cd /usr/local/src
tar zxvf libpng-1.6.28.tar.gz
cd libpng-1.6.28
./configure --prefix=/usr/local/libpng --enable-shared
make
make install
6、安装freetype
cd /usr/local/src
tar zxvf freetype-2.7.1.tar.gz
cd freetype-2.7.1
./configure --prefix=/usr/local/freetype --enable-shared
make
make install
7、安装jpeg
cd /usr/local/src
tar zxvf jpegsrc.v9b.tar.gz
cd jpeg-9b
./configure --prefix=/usr/local/jpeg --enable-shared
make
make install
8、安装libgd
cd /usr/local/src
tar zxvf libgd-2.1.1.tar.gz
cd libgd-2.1.1
./configure --prefix=/usr/local/libgd --enable-shared --with-jpeg=/usr/local/jpeg --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype --with-fontconfig=/usr/local/freetype --with-xpm=/usr/lib64 --with-tiff=/usr/local/tiff --with-vpx=/usr/local/libvpx
make
make install
说明:如果libgd编译失败,可以先跳过,直接使用系统默认的2.1.0版本,在编译php的时候把参数--with-gd=/usr/local/libgd修改为--with-gd即可。
9、安装t1lib
cd /usr/local/src
tar zxvf t1lib-5.1.2.tar.gz
cd t1lib-5.1.2
./configure --prefix=/usr/local/t1lib --enable-shared
make without_doc
make install
10、安装php
注意:如果系统是64位,请执行以下两条命令,否则安装php会出错。
\cp -frp /usr/lib64/libltdl.so* /usr/lib/
\cp -frp /usr/lib64/libxpm.so* /usr/lib/
cd /usr/local/src
tar -zvxf php-7.1.2.tar.gz
cd php-7.1.2
export ld_library_path=/usr/local/libgd/lib
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --with-pdo-mysql=/usr/local/mysql --with-gd=/usr/local/libgd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/lib64 --with-zlib-dir=/usr/local/zlib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl --enable-ctype --enable-mysqlnd
make #编译
make install #安装
说明:如果提示libgd版本错误,把php编译参数--with-gd=/usr/local/libgd修改为--with-gd即可。
cp php.ini-production /usr/local/php/etc/php.ini #复制php配置文件到安装目录
rm -rf /etc/php.ini #删除系统自带配置文件
ln -s /usr/local/php/etc/php.ini /etc/php.ini #/etc ディレクトリにソフトリンクを追加します
cp /usr/local/php/etc/ php- fpm.conf.default /usr/local/php/etc/php-fpm.conf #テンプレート ファイルを php-fpm 設定ファイルにコピーします
ln -s /usr/local/php/etc /php-fpm .conf /etc/php-fpm.conf #/etc ディレクトリにソフト接続を追加します
vi /usr/local/php/etc/php-fpm.conf #Edit
pid = run /php-fpm.pid #前のセミコロンをキャンセル
:wq! #保存して終了
cp /usr/local/php/etc/php-fpm. d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
vi /usr/local/php/etc/php-fpm.d/www.conf #Edit
user = www #php-fpm 実行アカウントを www
group = www #php-fpm 実行グループを www
Set php -fpm 起動時に開始します
cp /usr/local/src/php-7.1.2/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php- fpm #php-fpm を起動ディレクトリにコピーします
chmod x /etc/rc.d/init.d/php-fpm #実行権限を追加
chkconfig php-fpm on #セットアップstartup
vi /usr/local/ php/etc/php.ini #設定ファイルの編集
検索: disable_functions =
次のように変更します: disable_functions = passthru,exec,system 、chroot、scandir、chgrp、chown、shell_exec、proc_open、proc_get_status、ini_alter、ini_alter、ini_restore、dl、openlog、syslog、readlink、symlink、popepassthru、stream_socket_server、escapeshellcmd、dll、popen、disk_free_space、checkdnsrr、checkdnsrr、getservbyname、getservbyport 、disk_total_space、posix_ctermid、posix_get_last_error、posix_getcwd、po six_getegid、posix_geteuid、posix_getgid、posix_getgrgid、posix_getgrnam、posix_getgroups、posix_getlogin、posix_getpgid、posix_getpgrp、posix_getpid、posix_getppid、posix_getpwn am、posix_getpwuid、posix_getrlimit、posix_getsid、posix_getuid、posix_isatty、posix_kill、posix_mk fifo、posix_setegid ,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times, posix_ttyname,posix_uname
#PHP で無効にできる関数のリストです。一部のプログラムでこの関数を使用する必要がある場合は、削除して無効に解除できます。 。
見つかった: ;date.timezone =
次のように変更されました: date.timezone = prc #タイムゾーンの設定
見つかった: Expose_php = on
次のように変更されました:expose_php = off #php のバージョン情報の表示を抑制します
見つかりました: short_open_tag = off
次のように変更します: short_open_tag = on #php の短いタグをサポート
opcache.enable= を見つけます0
opcache.enable=1 に変更します #php は opcache.enable_cli をサポートします
# 見つかりました:;opcache.enable_cli=1 #php は opcache.enable_cli をサポートします= 0最後の行に追加: zend_extension=opcache.so #opcode caching functionを有効にする:wq! #保存して終了phpをサポートするようにnginxを設定 vi /usr/local/nginx/conf/nginx.conf/usr/local/nginx/conf/nginx.conf 構成ファイルを変更し、次の変更を加えます user www www; # user の最初の行からコメントを削除し、nginx 実行グループを www www に変更します; これは /usr/local/php/etc/php-fpm.conf のユーザーおよびグループの設定と同じである必要がありますそうしないと、php 操作中にエラーが発生します。indexindex .htmlindex.htmindex.php;#Addindex.php# 127.0.0.1 でリッスンしている fastcgi サーバーに php スクリプトを渡します。 :9000 #location ~ \.php$ {root html;fastcgi_pass 127.0.0.1:9000; fastcgi_indexindex.php;fastcgi_param script_filename $document_root$fastcgi_script_name ;include fastcgi_params;}##fastcgi サーバー パーツの場所のコメントを解除します。 fastcgi_param 行のパラメータに注意して、$document_root$fastcgi_script_name に変更するか、絶対パス
/etc/init.d/nginx restart #Restart nginx
service php- を使用してください。 fpm start #php-fpm の開始
テスト記事cd /usr/local/nginx/html/ #nginx のデフォルト Web サイトのルート ディレクトリを入力します rm -rf /usr/local/nginx/html/* #デフォルトのテスト ページを削除します
viindex.php #新しいindex.phpファイル
phpinfo();
?>
:wq! #保存終了
chown www.www /usr/local/nginx/html/ -r #ディレクトリを設定owner
chmod 700 /usr/local/nginx/html/ -r #ディレクトリ権限の設定
#ブラウザでサーバーの IP アドレスを開くと、次のインターフェイスが表示されます以上がCentOS に Nginx+MySQL+PHP をコンパイルしてインストールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。