CentOS下編譯安裝LNMP環境

1、卸載系統預安裝的LAMP軟件

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*

2、添加用戶

  添加用戶和用戶組 www 和 mysql,而且禁止登陸。php

  www用戶主要是用來賦予nginx和php執行權限,mysql主要是賦予給mysql權限,禁止登陸是爲了防止用戶有權限去操做www和mysql,一切爲了安全!html

1 groupadd www
2 useradd -s /sbin/nologin -g www www
3 groupadd mysql
4 useradd -s /sbin/nologin -g mysql mysql

 

3、添加預安裝包

yum -y install 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 cmake ncurses ncurses-devel

  我通常都會將安裝包放到/usr/local/src目錄中,因此先執行下面的命令 mysql

cd /usr/local/src

  首先安裝libmcrypt包 若是下面的下載地址很差用,請訪問這個網址進行下載:https://sourceforge.net/projects/mcrypt/...nginx

cd /usr/local/src
wget -c http://soft.vpser.net/web/libmcrypt/libmcrypt-2.5.8.tar.gz
tar zxvf libmcrypt-2.5.8.tar.gz
cd  libmcrypt-2.5.8
./configure
make && make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make && make install
ln -sf /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -sf /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -sf /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -sf /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ldconfig

 

4、安裝 nginx

  我安裝使用的是 nginx-1.9.12c++

cd /usr/local/src
wget -c http://nginx.org/download/nginx-1.9.12.tar.gz
tar zxvf nginx-1.9.12.tar.gz
cd nginx-1.9.12
#nginx1.9.5以前的
#./configure --prefix=/usr/local/nginx --user=www --group=www --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_ssl_module --with-pcre --with-http_stub_status_module --with-http_spdy_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module
#nginx1.9.5以後的(包含1.9.5)
#./configure --prefix=/usr/local/nginx --user=www --group=www --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_ssl_module --with-pcre --with-http_stub_status_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module
make && make install 

  ./configure 參數解釋:web

--prefix=/usr/local/nginx #nginx的安裝路徑
--user=www #設置nginx工做進程的用戶
--group=www #設置nginx工做進程的用戶組
--without-mail_pop3_module #禁用nginx處理/代理POP3協議
--without-mail_imap_module #禁用nginx處理/代理IMAP協議
--without-mail_smtp_module #禁用nginx處理/代理SMTP協議
--with-http_ssl_module #使用https協議
--with-pcre #啓用pcre庫,支持重寫
--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 #啓用過濾器支持

  啓動nginx的命令:sql

/usr/local/nginx/sbin/nginx
 

5、安裝php

cd /usr/local/src
wget -c http://cn2.php.net/distributions/php-7.0.4.tar.gz
tar zxvf php-7.0.4.tar.gz
cd php-7.0.4
./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 --enable-fileinfo --enable-opcache --enable-session --with-fpm-user=www --with-fpm-group=www --without-pear --enable-exif --enable-json --enable-pdo
make && make install 

  這樣php就安裝完成了。而後接下來建立軟鏈接:數據庫

ln -sf /usr/local/php/bin/php /usr/local/bin/php

  生成php.ini配置文件,這裏有兩個php.ini,適合開發場景和生產場景,能夠根據須要選擇不一樣的配置文件,通常選擇前者json

cp php.ini-development /usr/local/php/etc/php.ini #開發版本
cp php.ini-production /usr/local/php/etc/php.ini #生產版本

  這時候php就已經安裝完成了。接下來就是啓用php-fpm服務了。vim

  首先生成配置文件

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.4/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();
?>

  若是能正確的顯示php的當前信息,就說明咱們工做已經完成了一大半了。

 

6、安裝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.11.tar.gz
tar zxvf mysql-boost-5.7.11.tar.gz
cd mysql-5.7.11/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -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_ARCHIVE_STORAGE_ENGINE=1 #安裝archive存儲引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 #安裝blackhole存儲引擎
-DMYSQL_TCP_PORT=3306 #指定端口
-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

  輸入密碼回車。登陸成功後,輸入如下字符,來修改密碼,好比個人密碼是12345:

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); ?>
相關文章
相關標籤/搜索