编译安装Nginx
1、查看系统环境
查看系统版本:
cat /etc/issue或者cat /etc/redhat-release
查看系统位数
uname -r
2、安装pcre库和OpenSSL
yum install -y pcre pcre-devel
yum install -y openssl openssl-devel
注:查看pcre库和OpenSSL是否安装成功
rpm -aq pcre pcre-devel
rpm -aq openssl openssl-devel
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
参数说明:
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
13、验证Nginx是否安装成功
使用浏览器打开
使用wget 127.0.01
使用curl 127.0.0.1
14、查看Nginx的版本和安装了哪些模块
/application/nginx/sbin/nginx -V
15、其他相关说明
如果已经启动Nginx,再次启动的话会出现如下错误
这时候需要使用killall nginx杀死Nginx进程,再次启动问题解决
安装成功的nginx如何添加未编译模块?
步骤1:查看nginx编译安装时的命令,安装了哪些模块和nginx版本
/usr/local/nginx/sbin/nginx -V
会显示如下信息:
步骤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
编译安装mysql
1、解压 cmake
tar zxvf cmake-2.8.8.tar.gz
2、进入解压目录(注:当前目录为/home/tools)
cd cmake-2.8.8
3、配置cmake
./configure
因为缺少开发包,出现如下报错
安装C语言包,问题解决
yum install gcc* -y
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
注意:
一定要放在前面,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
初始化成功!
注:–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
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
会有提示,可以不理睬
切换到数据库
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
rpm -qa freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
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
出现该图说明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
出现上图所示,则编译成功
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*
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
配置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、修改主配置文件
5、测试
测试Nginx主配置文件是否配置成功
/application/nginx/sbin/nginx -t
平滑重启Nginx
/application/nginx/sbin/nginx -s reload
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;
}
}
}
测试
/application/nginx/sbin/nginx -t
平滑重启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
平滑重启Nginx
/application/nginx/sbin/nginx -s reload
输入网址:
配置PHP访问mysql
1、进入/application/nginx/html/blog目录
cd /application/nginx/html/blog
2、编辑test_mysql.php文件
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();
}
?>
3、访问出现如下错误
4、修改test_mysql.php
将’localhost’换成’127.0.0.1’即可
接着访问网站出现如下问题
排查中发现mysql数据库没有运行,运行数据库之后,问题解决