如何搭建LNMP環境

最新版請看: 如何搭建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);
?>
相關文章
相關標籤/搜索