閱讀956 返回首頁    go 技術社區[雲棲]


lnmp環境搭建

接著上一篇lnmp環境搭建之mysql篇,接下來介紹lnmp環境搭建的Nginx和PHP的安裝和配置。

先介紹安裝前的準備,因為是最小化安裝,所以就連gcc等最基礎命令都沒有,而使用源碼安裝時一些基本的命令是必須的。因此這裏建議使用yum安裝開發工具組:


yum grouplist # 查看有沒有安裝Development Tools組


8dd15b81c4c13a3baf022e738998e52a1a6f0713


yum -y groupinstall "Development Tools" # 沒有的話就可以運行此命令安裝了

 

接下來可以先介紹Nginx的安裝,

Nginx官網:https://nginx.org/

在官網隨便找個最新版本的下載下來就行:


cd /usr/local/src/ # 習慣性地把源碼包放在src目錄下
wget -c https://nginx.org/download/nginx-1.13.5.tar.gz # 下載最新版本

如果提示-bash: wget: command not found,就:

yum –y install wget

下載完成後就是以下的一波操作:

tar -zxf nginx-1.13.5.tar.gz
cd nginx-1.13.5
./configure # 配置時如果有錯誤一般都是缺少了什麼開發包,yum裝一下就行了:

c4144f5ab315a9c9cd466278bfbfecb2da14a09c

表示缺少pcre開發包,執行:yum -y install pcre-devel,安裝完成後再配置:./configure

8d1d7240ec5fab75de81f3158122c8751c56b041

表示缺少zlib開發包,執行:yum -y install zlib-devel,安裝完成後再配置:./configure

沒有錯誤,配置完成後執行編譯命令:make

編譯安裝命令:make install

然後就安裝完成了。

/usr/local/nginx/sbin/nginx # 嚐試性地啟動

ps aux|grep nginx # 查看有沒有啟動成功,下圖表示啟動成功了

6d764dfdc10201b123e04b13f7dc6d44bd182b53

curl 127.0.0.1 # curl本機地址,下圖表示成功地安裝了Nginx:

7bc5fde432fd5317ea6210b6d6e7f1124a08fce2

 

以下是Nginx的啟動|停止等命令:

/usr/local/nginx/sbin/nginx

/usr/local/nginx/sbin/nginx -s stop(quit|reload) 停止|重新加載配置

/usr/local/nginx/sbin/nginx -t 測試配置

/usr/local/nginx/sbin/nginx -V 顯示版本和配置信息

 

最後就是PHP的安裝了,

PHP官網:https://www.php.net/

這裏安裝的是PHP5.6

cd /usr/local/src/ # 再次習慣性地把源碼包放在src目錄下

wget -c https://hk1.php.net/distributions/php-5.6.31.tar.gz # 下載源碼包

tar -zxf php-5.6.31.tar.gz # 解壓

cd php-5.6.31 # 進入源碼目錄,總是少不了這兩步

./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt \

--enable-mbstring --enable-pdo --with-curl --disable-debug  --disable-rpath \

--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \

--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \

--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \

--with-gd --with-jpeg-dir --with-freetype-dir --enable-calendar --with-pdo-mysql=/usr/local/mysql # 要配置一下,--enable-fpm:啟用php-fpm,最後一項—with-pdo-mysql=/usr/local/mysql,這是使用PDO連接PHP和mysql,=號後麵是mysql的basedir,一般都是這個目錄,不過如果是yum安裝的話就要改成—with-pdo-mysql=/usr,如果不確定在哪個目錄可以進入mysql命令界麵,執行:show variables like '%dir%';

510d4a0865c0e8b6ef679f40ac3c74bd7a4d5780

如果之前沒有安裝mysql的話可以把—with-pdo-mysql這項去掉,以後還可以編譯安裝,這在後麵提到。

如果確定沒問題就可以開始配置工作了,當然配置的時候難免會有沒安裝的包:

196e1186245821b0b2fb633f620b8bce30a8668f

configure: error: xml2-config not found. Please check your libxml2 installation.

yum -y install libxml2-devel

 

851c0f8fecfeddc16c888f86ef79d49a7d97ecb1

configure: error: Please reinstall the BZip2 distribution

yum -y install bzip2-devel

 

37844d3be8928c70525a9cac0980b694eaa9c435

configure: error: Please reinstall the libcurl distribution

yum -y install libcurl-devel

 

5fd59adaece1366fc7d016419d52c7c49ed6fb56

configure: error: jpeglib.h not found.

yum -y install libjpeg-turbo-devel

 

f3f469b57d0a2e1a2cf3bb983117d96b50267009

configure: error: png.h not found.

yum -y install libpng-devel

 

65ecd39b6c80470eb4830ab202f42b72afe4f12b

configure: error: freetype-config not found.

yum -y install freetype-devel

 

b5e683573a2f370437058fbbfd3ed9387e7efa6a

configure: error: mcrypt.h not found. Please reinstall libmcrypt.

yum -y install libmcrypt # 如果沒有相關包的話隻能下載源碼包安裝,執行以下操作:

wget -c https://yq.aliyun.com/articles/ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz # 下載libmcrypt源碼包

tar -zxf libmcrypt-2.5.7.tar.gz # 解壓

cd libmcrypt-2.5.7 # 進入源碼目錄

./configure # 配置

make # 編譯

make install # 編譯安裝

 

56dc2b6d6478d122db1424babaae1db5e868cb46

configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no

配置時加上--enable-opcache=no

 

782668706ad1da92ccfd9dfd54383065b8cc9777

configure: error: PDO_MYSQL configure failed, MySQL 4.1 needed. Please check config.log for more information.

把--with-pdo-mysql=/usr改成--with-pdo-mysql就應該沒問題,如果還有問題先去掉--with-pdo-mysql=/usr,之後再添加pdo_mysql擴展。

 

1807429f330da94fd1f1edf6f247c9b155751251

configure: error: off_t undefined; check your library configuration

echo "/usr/local/lib

/usr/local/lib64

/usr/lib

/usr/lib64" >> /etc/ld.so.conf && ldconfig –v

 

make # 配置完編譯

make install # 編譯安裝

/usr/local/php/bin/php –v # 出現版本信息就代表成功安裝了

b1ee2add72a8adfff10011c4310a7603f0eac43b

 

/usr/local/php/sbin/php-fpm # 嚐試性地啟動php-fpm進程

ps aux|grep php-fpm # ps一下,查看有沒有php-fpm進程,如下表示啟動成功,第一條為php-fpm的主進程:

ba4e043caa0cf07b8081af4144ebeb3bb3baff01

 

以下是php-fpm的啟動|停止等命令:

/usr/local/php/sbin/php-fpm # 啟動php-fpm

kill -USR2 id #重啟php-fpm,id為php-fpm的master主進程號

kill -[INT|TERM] id #立刻終止php-fpm

kill -QUIT #平滑終止

kill -USR1 #重新打開日誌文件

 

到此PHP就安裝完了,接下來就是配置。

 

首先是配置Nginx運行PHP

 

groupadd www # 新增www用戶組

useradd -g www -s /bin/false www # 新增www用戶

vi /usr/local/nginx/conf/nginx.conf # 修改nginx.conf文件

將user改成www用戶,www用戶組,並去掉#號:

5e68df4a3af0f87d9d66da197317745bd3617463

新增配置如下,框框內的為新增內容,並把原來的80端口改成81或改成其他端口,以免衝突,:

02a38fb0e608829c2706bd11626aa92606cda30e

/usr/local/nginx/sbin/nginx –t # 測試nginx.conf文件是否有語法錯誤

/usr/local/nginx/sbin/nginx -s reload # 如果沒有錯誤就執行此命令讓nginx重載

 

cat /usr/local/php/etc/php-fpm.conf.default |grep -v '^[;#]'|grep -v '^$'|grep -v '^ $' > /usr/local/php/etc/php-fpm.conf # 配置php-fpm.conf文件

vi /usr/local/php/etc/php-fpm.conf # 修改php-fpm.conf配置文件

框框內表示要修改或增加的信息:

60c39c7528b3b79ae3ba4ae56ad4a1cb76a6a808

修改完保存退出,並重啟php-fpm:

ps aux|grep php-fpm # 重啟前要先知道php-fpm的主進程id是多少

kill -USR2 21956 # 重啟php-fpm命令,這裏php-fpm的主進程id是21956

ps aux|grep php-fpm # 重啟完看看php-fpm的主進程id是否變了,不過這步一般都是多餘的

詳細操作及效果如下圖:

a56847e2eaa687e25ac9abb631b3f5969b0e63a3

 

如果都修改並啟動成功就可以測試了:

vi /home/www/test.php # 隨便echo一些信息

ae0e68f3745d4dd8b1cfd883c22300003a7c6f8c

curl 127.0.0.1/test.php # curl測試,如果出現hello world就說明成功了。

 

 

然後我們再馬不停蹄地進行下一步:通過PDO連接mysql。

 

PDO擴展安裝

cd /usr/local/src/php-5.6.31/ext/pdo_mysql # 進入源碼目錄

/usr/local/php/bin/phpize # 安裝PHP擴展都需要運行這個命令

./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql # 配置

make # 編譯

make install # 編譯安裝

/usr/local/php/bin/php -i|grep "php.ini" # 查看PHP讀取php.ini的路徑,下條複製到這個目錄:

180029f46b75713fd306f1312320a9594c4f20e7

cp /usr/local/src/php-5.6.31/php.ini-development /usr/local/php/lib/php.ini # 複製php.ini

vi /usr/local/php/lib/php.ini # 編輯php.ini文件,加入pdo_mysql擴展,加入以下兩行:

extension=pdo_mysql.so

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226"

a75feb50edc6e43077d99f1073417ec43711d938

36933045db6e81c8957e63f4d7f1a8689c59fd15

保存退出重啟php-fpm:

ps aux|grep php-fpm

kill -USR2 id # id為主進程號

 

最後就是測試一下:

vi /home/www/pdo_mysql_test.php

<?php

$db_host = '127.0.0.1';

$db_name = 'mysql';

$db_user = 'root';

$db_pass = 'root';

$db_port = 3306;

$db_charset = 'utf8';

 

try{

  $dbh = new PDO("mysql:host=$db_host;dbname=$db_name;port=$db_port;charset=$db_charset", $db_user, $db_pass);

}catch(PDOException $e){

  exit('error: '. $e->getMessage());

}

$sql = 'show databases';

$query = $dbh->query($sql);

$query->setFetchMode(PDO::FETCH_ASSOC);

$result = $query->fetchAll();

print_r($result); // 打印所有數據庫名稱

 

$dbh = null; // 關閉連接

abcf7a26579291410d7b7bbe4964d82be5e5364e

curl 127.0.0.1/pdo_mysql_test.php # 保存退出,運行此命令,如果出現數據庫信息就說明沒問題

 

phpMyAdmin

cd /home/www/ # 進入www目錄

wget -c https://files.phpmyadmin.net/phpMyAdmin/4.7.4/phpMyAdmin-4.7.4-all-languages.tar.gz # 下載phpMyAdmin到當前目錄

tar -zxf phpMyAdmin-4.7.4-all-languages.tar.gz # 解壓

mv phpMyAdmin-4.7.4-all-languages phpmyadmin # 重命名

systemctl stop firewalld # 關閉防火牆

用局域網內的機器訪問:

ip/phpmyadmin

 

到此所有工作都完成了。

最後更新:2017-10-11 18:03:22

  上一篇:go  橋梁智能張拉設備技術性能的應用-中拓礦山設備
  下一篇:go  【雲棲大會】阿裏CTO張建鋒:成立全球研究院達摩院 未來3年投1000億