您的位置 首页 php

LNMP配置实例(含MySQL命令补全、nginx添加未编译模块)

153917616302731c0b43860

编译安装Nginx

1、查看系统环境

查看系统版本:

cat /etc/issue或者cat /etc/redhat-release

1539175958453134347c26d

查看系统位数

uname -r

15391759585480c64c03ef4

2、安装pcre库和OpenSSL

yum install -y pcre pcre-devel

yum install -y openssl openssl-devel

注:查看pcre库和OpenSSL是否安装成功

rpm -aq pcre pcre-devel

1539175955580d6bc5b16a7

rpm -aq openssl openssl-devel

15391759556439d5efa2143

3、创建Nginx用户

useradd -s /sbin/nologin -M nginx

4、创建Nginx预装目录,并将Nginx下载到tools目录(如果没有该目录需要创建)

mkdir -p /application/nginx-1.6.3

mkdir -p /home/tools/

5、进入/home/tools下载Nginx

cd /home/tools

wget nginx -1.6.3.tar.gz

6、解压Nginx

tar zxvf nginx-1.6.3.tar.gz

7、进入解压后的目录,并开始配置相关编译参数

cd /home/tools/nginx-1.6.3

./configure –user=nginx –group=nginx –prefix=/application/nginx-1.6.3/ –with-http_stub_status_module –with-http_ssl_module

参数说明:

15391759557233459406659

8、编译Nginx源码

make

9、安装Nginx

make install

10、创建Nginx软连接

ln -s /application/nginx-1.6.3 /application/nginx

11、启动Nginx

/application/nginx/sbin/nginx

12、查看Nginx是否正常启动

lsof -i:80

1539175955768de02697fca

13、验证Nginx是否安装成功

使用浏览器打开

153917595590268048ff75b

使用wget 127.0.01

1539175955988058113267a

使用curl 127.0.0.1

15391759560633826f0b3d9

14、查看Nginx的版本和安装了哪些模块

/application/nginx/sbin/nginx -V

1539175956162f2109bd45a

15、其他相关说明

如果已经启动Nginx,再次启动的话会出现如下错误

1539175956221e53b3492b7

这时候需要使用killall nginx杀死Nginx进程,再次启动问题解决

安装成功的nginx如何添加未编译模块?

步骤1:查看nginx编译安装时的命令,安装了哪些模块和nginx版本

/usr/local/nginx/sbin/nginx -V

会显示如下信息:

15391759562980a35a2f7a6

步骤2:重新编译 nginx-1.7.7

cd /home/tools

wget

tar zxvf nginx-1.7.7.tar.gz

cd nginx-1.7.7

//configure参数要和步骤1的configure arguments一模一样

./configure –prefix=/usr/local/nginx –with-http_ssl_module

make (没有make install)

步骤3:备份nginx的二进制文件

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

步骤4:覆盖nginx的二进制文件

cp objs/nginx /usr/local/nginx/sbin/

会提醒如下信息:

cp:是否覆盖”/usr/local/nginx/sbin/nginx”? y cp: 无法创建普通文件”/usr/local/nginx/sbin/nginx”: 文本文件忙 (nginx二进制文件繁忙,可以停止nginx,再试一次就可以了)

步骤5:重启nginx

service nginx start (/usr/local/nginx/sbin/nginx或/etc/init.d/nginx start)

步骤6:查看nginx新增模块

/usr/local/nginx/sbin/nginx -V

1539175956368a78accdd3d

编译安装mysql

1、解压 cmake

tar zxvf cmake-2.8.8.tar.gz

2、进入解压目录(注:当前目录为/home/tools)

cd cmake-2.8.8

3、配置cmake

./configure

因为缺少开发包,出现如下报错

153917595646931d209d786

安装C语言包,问题解决

yum install gcc* -y

153917595652751c982a0a3

4、编译cmake

gmake

5、安装cmake

gmake install

6、安装mysql依赖包

yum install ncurser-devel -y

注:如果yum 163源不行的话,可以换成ali的源!

wget -O /etc/yum.repos.d/CentOS-Base.repo

7、创建mysql用户和组

groupadd mysql

useradd mysql -s /sbin/nologin -M -g mysql

8、解压 mysql数据库

tar -zxvf mysql-5.5.32.tar.gz

9、进入mysql-5.5.32解压目录

cd mysql-5.5.32.tar.gz

10、配置mysql

cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.32 \-DMYSQL_DATADIR=/application/mysql-5.5.32/data \-DMYSQL_UNIX_ADDR=/application/mysql-5.5.32/tmp/mysql.sock \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \-DENABLED_LOCAL_INFILE=ON \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_FEDERATED_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \-DWITH_FAST_MUTEXES=1 \-DWITH_ZLIB=bundled \-DENABLED_LOCAL_INFILE=1 \-DWITH_READLINE=1 \-DWITH_EMBEDDED_SERVER=1 \-DWITH_DEBUG=0

11、编译mysql

make

12、安装mysql

make install

13、建立软链接(相当于windows的快捷方式)

ln -s /application/mysql-5.5.32/ /application/mysql

14、拷贝my-small.cnf文件作为模板

cp /home/tools/mysql-5.5.32/support-files/my-small.cnf /etc/my.cnf

15、配置mysql环境变量

echo ‘export PATH=/application/mysql-5.5.32/bin:$PATH’ >> /etc/ profile

tail -1 /etc/profile

source /etc/profile

echo $PATH

注意:

153917595657662b2b8b9bf

一定要放在前面,mysql被其他调用。该问题的案例介绍:

16、为mysql安装目录授权

chown -R mysql.mysql /application/mysql/data/

chmod -R 777 /tmp/

17、进入mysql的安装目录,并初始化mysql数据库

cd /application/mysql/scripts

./mysql_install_db –basedir=/application/mysql-5.5.32 –datadir=/application/mysql-5.5.32/data –user=mysql

15391759566564a2f070f64

初始化成功!

注:–basedir=/application/mysql为数据库安装目录;–datadir=/application/mysql/data为数据库数据安装目录;–user=mysql为数据库安装用户。

18、进入mysql的解压缩目录,拷贝mysql启动脚本到/etc/init.d/目录下,并给该脚本授权

cd /home/tools/mysql-5.5.32/support-files

cp mysql.server /etc/init.d/mysqld

chmod +x /etc/ ini t.d/mysqld

19、启动mysql

/etc/init.d/mysqld start

15391759567185d2002cb8e

20、给mysql的root用户配置密码

mysqladmin -uroot password ‘123’

使用tab自动补全mysql命令

1.使用mysql –help查看mysql的命令参数注意–auto-rehash Enable automatic rehashing. One doesn’t need to use ‘rehash’ to get table and field completion, but startup and reconnecting may take a longer time. Disable with –disable-auto-rehash. (Defaults to on; use –skip-auto-rehash to disable.)

2.临时使用

# mysql -u root -p –auto-rehash

15391759568304972def4d8

会有提示,可以不理睬

切换到数据库

1539175956938d75db2725e

3.永久使用

编辑/etc/my.cnf注释[mysql]下的no-auto-rehash新加auto-rehash登出mysql命令行

登陆切换到数据库,然后调用tab键测试吧

注意:自动补全是客户端命令,必须切换到数据库下才能使用

编译安装PHP

1、安装相关的软件包

yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel

yum install -y freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel

2、查看安装的软件包

rpm -aq install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel

15391759569884c67463d03

rpm -qa freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel

15391759570702f0b5211c1

3、因为libiconv-devel包没有安装成功,所以重新编译安装此包(在/home/tools)

下载libiconv-devel包

wget

解压libiconv-devel包

tar zxvf libiconv-1.14.tar.gz

进入libiconv-1.14目录

cd libiconv-1.14

配置libiconv

./configure –prefix=/usr/local/libiconv

编译libiconv

make

安装libiconv

make install

4、安装libmcrypt库

因为Centos的默认yum源中没有libmcrypt-devel,所有需要配置epel

第三方yum源

wget -O /etc/yum.repos.d/epel.repo

安装libmcrypt-devel包

yum -y install libmcrypt-devel

5、安装mhash加密扩展库

yum -y install mhash

6、安装mcrypt加密扩展库

yum -y install mcrypt

7、下载PHP软件包(两个链接下载的都是同一个PHP包,选择一个下载即可)

wget

wget

8、解压php-5.3.27.tar.gz文件

tar zxvf php-5.3.27.tar.gz

10、进入php-5.3.27目录

cd php-5.3.27

11、配置PHP

./configure \

–prefix=/application/php5.3.27 \

–with-mysql=/application/mysql \

–with-iconv-dir=/usr/local/libiconv \

–with-freetype-dir \

–with-jpeg-dir \

–with-zlib \

–with-libxml-dir=/usr \

–enable-xml \

–disable-rpath \

–enable-safe-mode \

–enable-bcmath \

–enable-shmop \

–enable-sysvsem \

–enable-inline-optimization \

–with-curl \

–with-curlwrappers \

–enable-mbregex \

–enable-fpm \

–enable-mbstring \

–with-mcrypt \

–with-gd \

–enable-gd-native-ttf \

–with-openssl \

–with-mhash \

–enable-pcntl \

–enable-sockets \

–with-xmlrpc \

–enable-zip \

–enable-soap \

–enable-short-tags \

–enable-zend-multibyte \

–enable-static \

–with-xsl \

–with-fpm-user=nginx \

–with-fpm-group=nginx \

–enable-ftp

1539175957147936cab822d

出现该图说明PHP配置正确

12、编译PHP

首先创建软链接

ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/

创建phar.phar文件

touch /home/tools/php-5.3.27/ext/phar/phar.phar

编译

make

1539175957220b1a5e01bd4

出现上图所示,则编译成功

13、安装PHP

make install

14、配置PHP引擎配置文件php.ini

建立php软链接

ln -s /application/php5.3.27/ /application/php

15、查看PHP默认配置文件

cd /home/tools/php-5.3.27

ls php.ini*

153917595728284fc234e9e

16、拷贝php.ini-production到/application/php/lib/目录下,并重命名为php.ini

cp php.ini-production /application/php/lib/php.ini

17、进入/application//php/etc/目录,拷贝 php-fpm .conf.default并重命名为php-fpm.conf

cd /application//php/etc/

cp php-fpm.conf.default php-fpm.conf

18、启动PHP

/application/php/sbin/php-fpm

19、查看PHP服务的启动情况

ps -ef | grep php-fpm

1539175957350ce2a4e079a

配置Nginx支持PHP程序请求访问

1、进入/application/nginx/conf目录

cd /application/nginx/conf

2、备份nginx.conf主配置文件

cp nginx.conf nginx.conf.bak

3、优化主配置文件

egrep -v “#|^$” nginx.conf.default > nginx.conf

4、修改主配置文件

1539175957420b070fa249d

5、测试

测试Nginx主配置文件是否配置成功

/application/nginx/sbin/nginx -t

1539175957482d5f0356870

平滑重启Nginx

/application/nginx/sbin/nginx -s reload

15391759575744a07b15569

6、在nginx.conf主配置文件中配置PHP解析

[root@salt-minion conf]# cat nginx.conf

worker_processes 1;

events {

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

server {

listen 80;

server_name blog.test.com;

location / {

root html/blog;

index index.html index.htm;

}

location ~ .*\.(php|php5)?$ {

root html/blog;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi.conf;

}

error_page 500 502 503 504 / 50x .html;

location = /50x.html {

root html;

}

}

}

15391759576757518befe39

测试

/application/nginx/sbin/nginx -t

153917630221711de2c5a71

平滑重启Nginx

/application/nginx/sbin/nginx -s reload

7、测试 LNMP 环境是否生效

进入/application/nginx/html/blog目录

cd /application/nginx/html/blog

编写如下内容

echo “<?php phpinfo(); ?>” >test_info.php

测试

/application/nginx/sbin/nginx -t

1539176311257995673041f

平滑重启Nginx

/application/nginx/sbin/nginx -s reload

输入网址:

153917595774061d7d06ca0

配置PHP访问mysql

1、进入/application/nginx/html/blog目录

cd /application/nginx/html/blog

2、编辑test_mysql.php文件

1539175957828f56a503c19

vim test_mysql.php

输入如下内容:

<?php

$link_id=mysql_connect(‘localhost’,’root’,’123′) or mysql_error();

if($link_id){

echo “mysql successful by kai!”;

}

else{

echo mysql_error();

}

?>

1539175957880680095f139

3、访问出现如下错误

15391759579957b5b6ae472

4、修改test_mysql.php

1539175958109d8a61edba2

将’localhost’换成’127.0.0.1’即可

接着访问网站出现如下问题

1539175958224ef4849239e

排查中发现mysql数据库没有运行,运行数据库之后,问题解决

1539175958310e05b86a60f

15391759583937b63e7234b

文章来源:智云一二三科技

文章标题:LNMP配置实例(含MySQL命令补全、nginx添加未编译模块)

文章地址:https://www.zhihuclub.com/54229.shtml

关于作者: 智云科技

热门文章

网站地图