网站首页 > 精选教程 正文
编译安装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 http://nginx.org/download/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 http://nginx.org/download/nginx-1.7.7.tar.gz
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 http://mirrors.aliyun.com/repo/Centos-6.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被其他调用。该问题的案例介绍:http://oldboy.blog.51cto.com/2561410/1122867
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/init.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 http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
解压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 http://mirrors.aliyun.com/repo/epel-6.repo
安装libmcrypt-devel包
yum -y install libmcrypt-devel
5、安装mhash加密扩展库
yum -y install mhash
6、安装mcrypt加密扩展库
yum -y install mcrypt
7、下载PHP软件包(两个链接下载的都是同一个PHP包,选择一个下载即可)
wget http://cn.php.net/get/php-5.3.27.tar.gz/from/cn2.php.net/mirror
wget http://cn2.php.net/get/php-5.3.27.tar.gz/from/this/mirror
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
输入网址:http://blog.test.com/test_info.php
配置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、访问http://blog.test.com/test_mysql.php出现如下错误
4、修改test_mysql.php
将'localhost'换成'127.0.0.1'即可
接着访问网站http://blog.test.com/test_mysql.php出现如下问题
排查中发现mysql数据库没有运行,运行数据库之后,问题解决
猜你喜欢
- 2024-10-12 写一个Nginx的模块没有那么难 nginx用什么写的
- 2024-10-12 nginx如何新增IPV6模块 nginx ipv6转换为ipv4
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)