Nginx PHP MySql 编译安装
以CentOS5.6为平台编译安装。确保系统已经安装gcc/gcc-c++编译器!
1.Nginx-1.0.14
2.PHP-5.3.10
3.MySql-5.1.61
安装相关依赖开发库:
autoconf curl freetype gd jpegsrc libiconv libmcrypt libpng libxml2
mhash ncurses openssl opensll-devel pcre pcre-devel zlib zlib-devel
1.Nginx 编译安装
# groupadd www 创建www用户组
# useradd -g www -s /sbin/nologin -M www 创建www用户并将其添加到www用户组
# mkdir /www 创建/www网站目录
# chmod +w /www 给/www目录写权限
# chown -R www:www /www 将网站根目录/www所有者和所属组设置为www用户和组
[./configure 编译参数]
--prefix=/usr/local/nginx Nginx安装路径
--user=www nginx启动运行所使用的用户,该用户必须已经存在。
--group=www nginx启动运行所使用的用户组,该用户组必须已经存在。
--with-http_realip_module
--with-http_addition_module
--with-http_gzip_static_module 开启gzip压缩功能,对页面进行压缩。
--with-http_random_index_module
--with-http_stub_status_module
--with-http_sub_module
--with-http_dav_module
配置 Nginx.conf 配置文件修改或添加下列内容:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
user www www; //nginx默认以用户www和用户组www身份启动worker_processes 8; //默认启动时开启的进程数gzip on; //开启gzip的压缩功能gzip_min_length 1100;gzip_buffers 4 8k;gzip_types text/plain; server { listen 80; //默认nginx服务器使用的端口为80端口 server_name localhost; //服务器名称,例如www.baidu.com location / { root /www; //web服务器网站跟目录 index index.php index.html index.htm; //网站默认主页 } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root /www; //默认所有php脚本文件所在目录 fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } //开启对静态图片和flash本地浏览器缓存1天。 location ~* ^.+\.(gif|jpg|jpeg|png|bmp|swf)$ { root /www; access_log off; expires 1d; } //开启对CSS样式表的本地缓存1小时。 location ~* ^.+\.(js|css)?$ { root /www; access_log off; expires 1h; } |
创建nginx启动脚本。添加为系统服务,并设置为开机自动启动。脚本内容如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
#!/bin/bash# nginx Startup script for the Nginx HTTP Server# this script create it by jackbillow at 2007.10.15.# it is v.0.0.2 version.# if you find any errors on this scripts,please contact jackbillow.# and send mail to jackbillow at gmail dot com.## chkconfig: - 85 15# description: Nginx is a high-performance web and proxy server.# It has a lot of features, but it's not for everyone.# processname: nginx# pidfile: /usr/local/nginx/logs/nginx.pid# config: /usr/local/nginx/conf/nginx.confnginxd=/usr/local/nginx/sbin/nginxnginx_config=/usr/local/nginx/conf/nginx.confnginx_pid=/usr/local/nginx/logs/nginx.pidRETVAL=0prog="nginx"# Source function library.. /etc/rc.d/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Check that networking is up.[ ${NETWORKING} = "no" ] && exit 0[ -x $nginxd ] || exit 0# Start nginx daemons functions.start() {if [ -e $nginx_pid ];then echo "nginx already running...." exit 1fi echo -n $"Starting $prog: " daemon $nginxd -c ${nginx_config} RETVAL=$? echo [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx return $RETVAL}# Stop nginx daemons functions.stop() { echo -n $"Stopping $prog: " killproc $nginxd RETVAL=$? echo [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid}# reload nginx service functions.reload() { echo -n $"Reloading $prog: " #kill -HUP `cat ${nginx_pid}` killproc $nginxd -HUP RETVAL=$? echo}# See how we were called.case "$1" instart) start ;;stop) stop ;;reload) reload ;;restart) stop start ;;status) status $prog RETVAL=$? ;;*) echo $"Usage: $prog {start|stop|restart|reload|status|help}" exit 1esacexit $RETVAL |
将以上脚本保存为nginx文件并复制到 /etc/init.d 目录下。执行下列命令:
# chmod 755 /etc/init.d/nginx 设置nginx启动脚本可执行权限
# chkconfig --add nginx 添加nginx为系统服务
# chkconfig nginx on 开启nginx服务随系统自动启动
# chown -R www:www /usr/local/nginx 设置nginx安装目录权限所有者和所属组为www
[手动启动 Nginx 命令]
# service nginx start
2.MySql 编译安装
# groupadd mysql 创建mysql用户组
# useradd -g mysql -s /sbin/nologin -M mysql 创建mysql用户并将其添加到mysql用户组
[./configure 编译参数]
--prefix=/usr/local/mysql mysql安装路径。
--localstatedir=/var/data DATA数据库位置。
--with-mysqld-user=mysql 以mysql用户身份运行mysql数据库。
--enable-assembler 使用一些字符函数的汇编模式(优化性能)
--with-big-tables 启用对大于4G的数据库的支持。
--with-charset=utf8 数据库编码字符集。多种编码字符集之间用逗号隔开。
--enable-static 静态编译,以静态方式编译客户端和服务端,能提高13%性能。
--with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static
--with-ssl 开启对SSL安全传输协议的支持。、
--with-embedded-server 构建嵌入式服务器
--enable-local-infile
# chown -R mysql:mysql /usr/local/mysql 设置MySql相关目录的权限
# cp /usr/local/mysql/share/mysql/my-medium.cnf /usr/local/mysql/my.cnf 复制创建MySql的配置文件
# /usr/local/mysql/bin/mysql_install_db --user=mysql 以mysql用户身份建立初始化数据库
# cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql 创建 Mysql 开机启动脚本,并设置可执行权限
# chmod 755 /etc/init.d/mysql
# chkconfig --add mysql 添加 MySql 为系统服务,并设置为开机自动启动
# chkconfig mysql on
# service mysql start 启动 Mysql
# /usr/local/mysql/bin/mysqladmin -u root password 123456 设置 MySql 的root密码为123456
3.PHP 编译安装
[./configure配置参数]
--prefix=/usr/local/php PHP安装路径
--with-config-file-path=/etc PHP配置文件路径
--with-mysql=/usr/local/mysql MySql安装路径
--with-mysqli=/usr/local/mysql/bin/mysql_config 开启对mysqli的支持
--enable-fpm
--with-fpm-user=www 以www用户身份运行PHP
--with-fpm-group=www 以www用户组身份运行PHP
--with-iconv-dir
--with-freetype-dir
--with-jpeg-dir
--with-png-dir
--with-zlib
--with-gd
--enable-gd-native-ttf
--with-libxml-dir
--with-curl
--enable-safe-mode
--with-xmlrpc
--with-openssl
--with-mhash
--with-mcrypt
--enable-bcmath
--enable-shmop
--enable-sysvsem
--with-curlwrappers
--enable-mbstring
--enable-sockets
--enable-magic-quotes
--with-pear
--enable-sysvshm
--enable-zip
[编译并安装PHP]
# make ZEND_EXTRA_LIBS='-liconv'
# make install
# cp php.ini-production /etc/php.ini 复制并修改php.ini配置文件
[修改php.ini配置文件内容:]
|
1
2
3
4
|
register_globals=Off 改为 register_globals=On //使传递全局变量有效<p></p>date.timezone = Asia/Shanghai //设置当前服务器的时区zend_optimizer.optimization_level=15 //加载Zend加速器zend_extension="/usr/local/Zend/ZendGuardLoader.so" //Zend加速器安装目录 |
[创建并修改php-fpm的配置文件]
# mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
修改内容:
|
1
2
3
4
5
6
7
|
pid = run/php-fpm.piderror_log = log/php-fpm.loglog_level = erroremergency_restart_interval = 3duser = wwwgroup = wwwlisten = 127.0.0.1:9000 |
[创建并添加php-fpm开机启动服务脚本]
# vi /etc/init.d/php-fpm
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
#!/bin/sh#chkconfig: - 85 15#description: php-fpm is PHP FastCGI Process Manage.#processname:php-fpm### BEGIN INIT INFO# Provides: php-fpm# Required-Start: $remote_fs $network# Required-Stop: $remote_fs $network# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: starts php-fpm# Description: starts the PHP FastCGI Process Manager daemon### END INIT INFOprefix=/usr/local/phpexec_prefix=${prefix}php_fpm_BIN=${exec_prefix}/sbin/php-fpmphp_fpm_CONF=${prefix}/etc/php-fpm.confphp_fpm_PID=${prefix}/var/run/php-fpm.pidphp_opts="--fpm-config $php_fpm_CONF"wait_for_pid () { try=0 while test $try -lt 35 ; do case "$1" in 'created') if [ -f "$2" ] ; then try='' break fi ;; 'removed') if [ ! -f "$2" ] ; then try='' break fi ;; esac echo -n . try=`expr $try + 1` sleep 1 done}case "$1" in start) echo -n "Starting php-fpm " $php_fpm_BIN $php_opts if [ "$?" != 0 ] ; then echo " failed" exit 1 fi wait_for_pid created $php_fpm_PID if [ -n "$try" ] ; then echo " failed" exit 1 else echo " done" fi ;; stop) echo -n "Gracefully shutting down php-fpm " if [ ! -r $php_fpm_PID ] ; then echo "warning, no pid file found - php-fpm is not running ?" exit 1 fi kill -QUIT `cat $php_fpm_PID` wait_for_pid removed $php_fpm_PID if [ -n "$try" ] ; then echo " failed. Use force-quit" exit 1 else echo " done" fi ;; force-quit) echo -n "Terminating php-fpm " if [ ! -r $php_fpm_PID ] ; then echo "warning, no pid file found - php-fpm is not running ?" exit 1 fi kill -TERM `cat $php_fpm_PID` wait_for_pid removed $php_fpm_PID if [ -n "$try" ] ; then echo " failed" exit 1 else echo " done" fi ;; restart) $0 stop $0 start ;; reload) echo -n "Reload service php-fpm " if [ ! -r $php_fpm_PID ] ; then echo "warning, no pid file found - php-fpm is not running ?" exit 1 fi kill -USR2 `cat $php_fpm_PID` echo " done" ;; *) echo "Usage: $0 {start|stop|force-quit|restart|reload}" exit 1 ;;esac |
# chmod 755 /etc/init.d/php-fpm
# chkconfig --add php-fpm 添加 PHP 为系统服务,并设置为开机自动启动
# chkconfig php-fpm on
# chown -R www:www /usr/local/php 给PHP相关文件目录设置权限
[手动启动 PHP 命令]
# service php-fpm start
!如果某个服务无法启动关闭系统防火墙。
Nginx PHP MySql 编译安装的更多相关文章
- 20190418 CentOS7实用技能综合:系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/RocketMQ/RabbitMQ编译安装 + ...各类常用生产环境软件的编译安装
系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/Roc ...
- mysql 编译安装
mysql 编译安装方式: ```cd /home/oldboy/tools``` 创建 目录 if not have then mkd ...
- centos mysql 编译安装
centos mysql 编译安装 1.安装 创建MySQL用户 sudo useradd mysql 下载MySQL的源码包,我们这里使用的时5.5.18 安装依赖 sudo yum -y inst ...
- Mysql编译安装及优化
采取编译安装的方法,其好处为:编译安装与平台无关,安装的MySQL目录独立,维护起来方便,而且拥有更好的性能. 环境:CentOS release 6.9 (Final) x86_64 1)下载my ...
- mysql编译安装(详细)(转载)
mysql编译安装(详细) 一.编译安装MySQL前的准备工作 安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl 安装cmake,从 ...
- rpm安装MySQL5.5后配置,在centos5上;mysql编译安装在centos6.5上;
[1] 没有/etc/my.cnf: rpm包安装的MySQL是不会安装/etc/my.cnf文件的:处理:cp /usr/share/mysql/my-huge.cnf /etc/my.cnf [2 ...
- Linux(centos)下mysql编译安装教程
Linux下mysql编译安装教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 本文測试环境centOS6.6 一.Linux下编译安装MyS ...
- 2、mysql编译安装
2.1前言: 此文档介绍的是cmake编译安装的方式: 二进制的安装方式在linux运维_集群_01中有详细的安装说明(已经编译完成,进行初始操作即可) 初始化操作时需要对编译好的mysql进行一下备 ...
- Nginx 之一:编译安装nginx 1.8.1 及配置
一:基介绍 官网地址www.nginx.org,nginx是由1994年毕业于俄罗斯国立莫斯科鲍曼科技大学的同学为俄罗斯rambler.ru公司开发的,开发工作最早从2002年开始,第一次公开发布时间 ...
随机推荐
- C++按值和按址传递对象的思考和优化
C++是一门面向对象(OOP)编程语言,在这门语言中也有函数,函数的参数可以是变量数值,当然也可以是对象.所以,传统地就有关于对象是按值传递还是按址传递的讨论. 在C语言中,按值传递在很多情况下可以出 ...
- Android学习笔记__2__Android工程目录结构
一.创建Android工程HelloWorld . src 文件夹里的是源文件 . Android2.2 是引用的类库,这些和 java 的都一样 . gen里面的类就是 ADT 自动生成的啦,一般只 ...
- iOS 按住Home键的代理
1.按住home键怎么保存程序的运行状态: 监听按home键的时候程序挂起的状态(通知),然后让其重新进入程序[[NSNotificationCenter defaultCenter] addObse ...
- UVA247- Calling Circles(有向图的强连通分量)
题目链接 题意: 给定一张有向图.找出全部强连通分量,并输出. 思路:有向图的强连通分量用Tarjan算法,然后用map映射,便于输出,注意输出格式. 代码: #include <iostrea ...
- Android窗口管理服务WindowManagerService对壁纸窗口(Wallpaper Window)的管理分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8550820 Android系统中,壁纸窗口和输 ...
- java 中Date的格式化样式
public static void main(String[] args) { Date d = new Date(); System.out.println(d); // Date类的默认格式 T ...
- Android学习笔记--服务(Service)
1.服务概述 1.服务是Android四大组件之一,在使用上可以分为本地服务和远程服务,本地服务是指在不影响用户操作的情况下在后台默默的执行一个耗时操作,例如下载,音频播放等.远程服务是指可以供其他应 ...
- DE2带的IP核ISP12362报错问题解决 Error:avalon_slave_1_irq: associatedAddressablePoint out of range
问题来源与对友晶提供的ISP1362 IP核的使用,由于Quartus II版本问题,它提供的IP基于7.0版本,而我用的版本为11.1,在SOPC Builder中重新加载IP,就出现了上述的错误报 ...
- js中退出语句break,continue和return 比较(转)
原链接:http://blog.163.com/ued_er/blog/static/199703159201210283107315/ js中退出语句break,continue和return 比较 ...
- 使用图片拉伸resizableImageWithCapInsets
在仿写QQ会话的时候背景蓝色图片是拉伸而来,但是有些地方是受保护的不能拉伸 所以定义了下面的工具类中的一个方法,专门拉伸图片 UIImageResizingModeStretch:拉伸模式,通过拉伸U ...