最新版請看: 如何搭建LNMP環境【編譯版】
centos-7.2 nginx-1.10.1 php-7.0.12 mysql-5.7.16php
注意:MySQL5.7的安裝須要1G的內存!!!不然會安裝失敗。
首先卸載系統預安裝的LAMP軟件html
rpm -qa|grep httpd rpm -e httpd httpd-tools rpm -qa|grep mysql rpm -e mysql mysql-libs rpm -qa|grep php rpm -e php-mysql php-cli php-gd php-common php yum -y remove httpd* yum -y remove mysql-server mysql mysql-libs yum -y remove php*
添加用戶(添加用戶和用戶組 www 和 mysql,而且禁止登陸)。
www用戶主要是用來賦予nginx和php執行權限,mysql主要是賦予給mysql權限,禁止登陸是爲了防止用戶有權限去操做www和mysql,一切爲了安全:mysql
groupadd www useradd -s /sbin/nologin -g www www groupadd mysql useradd -s /sbin/nologin -g mysql mysql
添加預安裝包nginx
yum -y install wget gcc gcc-c++ libxml2 libxml2-devel pcre pcre-devel openssl openssl-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libicu libicu-devel libxslt libxslt-devel autoconf cmake ncurses ncurses-devel libxslt libxslt-devel
我通常都會將安裝包放到/usr/local/src目錄中,因此先執行下面的命令c++
cd /usr/local/src
首先安裝libmcrypt包。sql
yum install -y epel-release yum clean all yum makecache yum install -y libmcrypt libmcrypt-devel
安裝 nginxshell
cd /usr/local/src wget -c http://nginx.org/download/nginx-1.10.1.tar.gz tar zxvf nginx-1.10.1.tar.gz cd nginx-1.10.1 ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module make && make install
啓動nginx的命令是:數據庫
/usr/local/nginx/sbin/nginx
./configure 參數解釋:vim
--prefix=/usr/local/nginx #nginx的安裝路徑 --user=www #設置nginx工做進程的用戶 --group=www #設置nginx工做進程的用戶組 --with-http_ssl_module #使用https協議 --with-http_stub_status_module #提供查看服務器統計信息的能力 --with-http_v2_module #提供HTTP/2服務。從nginx1.9.5開始,http_v2_module 已經替換了http_spdy_module。因此安裝以前的版本將該參數替換爲--with-http_spdy_module(啓動SPDY支持,SPDY能夠縮短網頁的加載時間,可是必須使用ssl傳輸協議) --with-http_gzip_static_module #啓用預壓縮(gzip)的支持 --with-ipv6 #支持ipv6訪問 --with-http_sub_module #啓用過濾器支持
安裝phpcentos
cd /usr/local/src wget -c http://cn2.php.net/distributions/php-7.0.12.tar.gz tar zxf php-7.0.12.tar.gz cd php-7.0.12 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-intl --enable-pcntl --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --with-xsl make && make install
這樣php就安裝完成了。而後接下來建立軟鏈接:
ln -sf /usr/local/php/bin/php /usr/local/bin/php
複製php.ini配置文件
cp /usr/local/src/php-7.0.12/php.ini-production /usr/local/php/etc/php.ini
這時候php就已經安裝完成了。接下來就是啓用php-fpm服務了。
首先生成配置文件
mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf mv /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
啓動php-fpm的準備工做
cp /usr/local/src/php-7.0.12/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod +x /etc/init.d/php-fpm chkconfig php-fpm on
這個時候,使用以下命令就能夠啓動php-fpm了
service php-fpm start
啓動起來以後,編輯nginx配置文件,實現nginx的代理訪問,找到以下代碼:
vim /usr/local/nginx/conf/nginx.conf
#location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /script$fastcgi_script_name; # include fastcgi_params; #}
把前面的#註釋符號去掉,把script改爲$document_root,第二行 html 改爲你的項目路徑,這裏我設置的/home/www/default
,你也能夠設置本身喜歡的目錄 最終代碼以下:
location ~ \.php$ { root /home/www/default; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /$document_root$fastcgi_script_name; include fastcgi_params; }
修改完成以後,先執行nginx配置檢測命令,若是沒有錯誤就執行從新加載配置文件的命令:
/usr/local/nginx/sbin/nginx -t #配置檢測命令 /usr/local/nginx/sbin/nginx -s reload #動態加載配置命令
咱們去/home/www/default
目錄下建立一個php文件。瀏覽一下是否正常:
<?php phpinfo(); ?>
記得對/home/www/default
進行賦權:
chown www.www /home/www/default -R
若是能正確的顯示php的當前信息,就說明咱們工做已經完成了一大半了。下面接下來安裝mysql:
mysql5.7.5以後版本都要安裝boost包。因此我選擇是下載已經自帶boost安裝包的mysql安裝包:
cd /usr/local/src wget -c http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.16.tar.gz tar zxvf mysql-boost-5.7.16.tar.gz cd mysql-5.7.16/ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_BOOST=boost -DENABLE_DOWNLOADS=1 make && make install chown -R mysql:mysql /usr/local/mysql #對mysql目錄進行賦予權限
mysql configure 安裝參數解釋:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql #指定安裝路徑 -DDEFAULT_CHARSET=utf8mb4 #默認使用utf8mb4字符 -DDEFAULT_COLLATION=utf8mb4_general_ci #校驗字符 -DWITH_INNOBASE_STORAGE_ENGINE=1 #安裝innodb引擎 -DWITH_BOOST=boost #指定boost的安裝位置 -DENABLE_DOWNLOADS #是否要下載可選的文件。例如,啓用此選項(設置爲1),cmake將下載谷歌所使用的測試套件運行單元測試。
生成mysql配置文件
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
對數據庫進行初始化,這個時候初始化的時候,屏幕上會出現初始化的密碼,記下來,若是錯過了,能夠經過查看/root/.mysql_secret
來查看以前的初始化密碼:
/usr/local/mysql/bin/mysqld --initialize --user=mysql
複製文件mysql.server 可使用service 命令進行控制
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql service mysql start #啓動mysql
登陸數據庫修改密碼
/usr/local/mysql/bin/mysql -u root -p
輸入密碼回車。登陸成功後,輸入如下字符,來修改密碼,好比我要修改密碼爲root
:
set password = password('root');
寫一個php程序,來測試mysql是否可否正常連上MySQL:
<?php $pdo = new PDO("mysql:host=127.0.0.1;dbname=sys;port=3306", 'root', 'root', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'set names utf8mb4', PDO::ATTR_TIMEOUT => 1)); var_dump($pdo); ?>