1. 程式人生 > >CentOS 6 編譯安裝 LNMP環境

CentOS 6 編譯安裝 LNMP環境

清理已經安裝包

rpm -e httpd
rpm -e mysql
rpm -e php
yum -y remove httpd
yum -y remove mysql
yum -y remove php
#檢查apache是否解除安裝乾淨
rpm -qa|grep http*
#檢查mysql是否解除安裝乾淨
rpm -qa|grep mysql 

強制解除安裝 
rpm -e mysql-libs-XXX --nodeps

#檢查apache是否解除安裝乾淨
rpm -qa|grep php
解除安裝順序是:
#rpm -e php-mysql-XXX
#rpm -e php-pdo-XXX
#rpm -e php-xml-XXX
#rpm -e php-cli-XXX
#rpm -e php-gd-XXX
#rpm -e php-common-XXX

selinux可能會致使編譯安裝失敗,我們先禁用它。
永久禁用,需要重啟生效
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

臨時禁用,不需要重啟 
setenforce 0
#安裝依賴包:
yum -y install make gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap lsof

安裝mysql5.7.21(非編譯)


1、把mysql傳到伺服器並解壓到/usr/local

tar -xzvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz -C /usr/local

2、進入/usr/local目錄

cd /usr/local

3、為mysql安裝目錄建立軟連結

ln -s  mysql-5.7.21-linux-glibc2.12-x86_64 mysql

4、為centos新增mysql使用者組和mysql使用者

#-s /bin/false引數指定mysql使用者僅擁有所有權,而沒有登入許可權
groupadd mysql
useradd -r -g mysql -s /bin/false mysql

5、進入安裝mysql軟體的目錄,命令如下:

cd /usr/local/mysql

6、修改/usr/local/mysql許可權,命令如下:

chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql

7.安裝mysql(在目錄/usr/local/mysql下),命令如下:

bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize  
#提示缺少libnuma.so.1這個檔案,可能是因為系統是64位的,系統沒有64位的這個so庫
wget -o /usr/local/src http://mirror.centos.org/centos/6/os/x86_64/Packages/numactl-2.0.9-2.el6.x86_64.rpm

下載後安裝命令如下

rpm -ivh /usr/local/src/numactl-2.0.9-2.el6.x86_64.rpm
#再次執行安裝mysql命令
bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize  #即可安裝成功
#安裝成功後,記住隨機密碼

8、開啟mysql服務,命令如下:

./support-files/mysql.server start  #出現 success 啟動成功

9、進入support-files目錄,如果有my.cnf或者my-default.cnf 複製到etc目錄下並更名為my.cnf

cd support-files/   
#如果有my.cnf請備份
mv /etc/my.cnf  /etc/my.cnf.bak
#複製配置檔案到etc下
cp my-default.cnf   /etc/my.cnf

10、將mysql程序放入系統程序中,命令如下:

cp support-files/mysql.server /etc/init.d/mysqld  
#賦予執行許可權
chmod +x /etc/init.d/mysqld

11、設定開機啟動並啟動mysql

#開機啟動
chkconfig mysqld on啟動MySQL
service mysqld start 或者  /etc/init.d/mysqld start

12、把mysql的命令設定為環境變數

vi /etc/profile #在檔案末尾新增下面2句
PATH=/usr/local/mysql/bin:$PATH
export PATH
#讓配置立即生效
source /etc/profile

13、登入mysql測試

mysql -u root -p

安裝php-7.1.14

 

1、安裝依賴關係

libiconv庫為需要做轉換的應用提供了iconv()函式,實現2種字元編碼間的轉換

cd /usr/local/src
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv 
make && make install

libmcrypt是加密演算法擴充套件庫。

cd /usr/local/src
wget http://iweb.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make && make install

Mhash是基於離散數學原理的不可逆向的php加密方式擴充套件庫,其在預設情況下不開啟

cd /usr/local/src
wget https://nchc.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make && make install

mcrypt 是 php 裡面重要的加密支援擴充套件庫,Mcrypt擴充套件庫可以實現加密解密功能,就是既能將明文加密,也可以密文還原。

cd /usr/local/src
wget http://iweb.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
./configure
make && make install

編譯mcrypt可能會報錯:configure: error: *** libmcrypt was not found

vi  /etc/ld.so.conf    #最後一行新增
/usr/local/lib/
#儲存退出
ldconfig    #載入

開始編譯php

cd /usr/local/src
wget http://cn2.php.net/distributions/php-7.1.14.tar.gz
tar zxvf php-7.1.14.tar.gz
cd php-7.1.14
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc 
--enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd 
--with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv=/usr/local/libconv-1.14 
--with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr 
--enable-xml --disable-rpath --enable-magic-quotes --enable-safe-mode --enable-bcmath 
--enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl 
--with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp 
--with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl 
--enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear 
--with-gettext --disable-fileinfo --enable-maintainer-zts
make && make install

--prefix=/usr/local/php : 表示將php安裝到/usr/local/php目錄

--with-config-file-path=/usr/local/php/etc : 表示將php配置檔案存放在/usr/local/php/etc 
-with-pdo-mysql : 需要安裝mysql原生模組
--with-mysqli : 需要安裝mysql 增強模組

--enable-fpm : 需要安裝fpm模組,這個很重要,需要它才能打通nginx

 

如果出現 resinstall iconv

cd /usr/local/src/php-7.1.14 
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm 
--with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd 
--with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir --with-jpeg-dir 
--with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath 
--enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem 
--enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex 
--enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf 
--with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc 
--enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo 
--enable-maintainer-zts
make && make install

沒錯誤就安裝成功了。

#修改fpm配置php-fpm.conf.default檔名稱
mv /usr/local/php/etc/php-fpm.conf.default    /usr/local/php/etc/php-fpm.conf
#複製php.ini配置檔案
cp /usr/local/php/etc/php.ini-production    /usr/local/php/etc/php.ini
#複製www.conf配置檔案
cp /usr/local/php/etc/php-fpm.d/www.conf.default    /usr/local/php/etc/php-fpm.d/www.conf
#複製php-fpm啟動指令碼到init.d
cp sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm
#賦予執行許可權
chmod +x /etc/init.d/php-fpm
#新增為啟動項
chkconfig --add php-fpm
#設定開機啟動
chkconfig php-fpm on


#給php-fpm建立一個指定的使用者和組
#建立群組
groupadd www
#建立一個使用者,不允許登陸和不創主目錄 
useradd -s /sbin/nologin -g www -M www

將7.1版本的php新增到環境變數(如果不新增,預設是5.3版本)

#修改/etc/profile檔案
vi /etc/profile
 
#在檔案末尾的 PATH=/usr/local/mysql/bin:$PATH 後面再加PHP的命令目錄 
PATH=/usr/local/mysql/bin:$PATH:/usr/local/php/bin
#讓配置生效
source /etc/profile

#立即啟動php-fpm
service php-fpm start  或者  /etc/init.d/php-fpm start

php安裝完成。

 

nginx安裝

 

1、安裝pcre,zlib

yum install -y pcre pcre-devel
yum install -y zlib zlib-devel

2、建立網站根目錄

mkdir -p   /var/www/root/
chmod -R 775 /var/www/root/

3、下載nginx編譯安裝

cd /usr/local/src
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar zxvf  nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure \--user=www \--group=www \--prefix=/usr/local/nginx \--with-http_v2_module \--with-http_ssl_module \--with-http_sub_module \--with-http_stub_status_module \--with-http_gzip_static_module \--with-pcre \--with-threads
make && make install
#驗證
/usr/local/nginx/sbin/nginx -V

4、配置nginx開啟php支援

#在server段中開啟php支援
cd /usr/local/nginx
vi conf/nginx.conf

以  location  / { 開頭的改為如下所示

location / {
   root   /var/www/root;
   index  index.html index.htm;
}

以  location ~ \.php$  開頭的改成如下所示

location ~ \.php$ {
    root       /var/www/root;        #自定義網站根目錄
    autoindex_exact_size off;         #檔案大小從KB開始顯示
    autoindex_localtime on;           #顯示檔案修改時間為伺服器本地時間 
    fastcgi_pass   127.0.0.1:9000;    #需要開啟
    fastcgi_index  index.php;         #需要開啟
    fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;  
    include        fastcgi_params;    #需要開啟
}

修改完,重啟nignx    /usr/local/nginx/sbin/nginx -s reload

測試是否搭建成功:先放個文件index.html到網站目錄/var/www/root

再用命令 curl http://127.0.0.1/index.html  檢視文件內容是否可以顯示出來,正確顯示則安裝成功。

 

相關命令:

啟動nginx    /usr/local/nginx/sbin/nginx
停止nginx    /usr/local/nginx/sbin/nginx -s stop
重啟nginx    /usr/local/nginx/sbin/nginx -s reload

關閉ngixn

pkill -9 nginx

引數解釋

-s stop 快速停止nginx

-s quit 平滑停止nginx

-s reopen 重新開啟日誌檔案

-s reload 平滑過載所有配置

 

5、開啟80埠

vi  /etc/sysconfig/iptables

將22埠的規則複製一行,把22改為80 ,儲存退出.

重啟防火牆  /etc/init.d/iptables restart。開放80埠後,其他機器就可以訪問該網站了。
 

到此基本完成這個流程。
 

參考:https://www.cnblogs.com/syouth/p/6853261.html

參考:http://blog.csdn.net/xcg132566/article/details/79161756

原文地址:CentOS 6.5 編譯安裝 LNMP環境