centos6源码编译安装lnmp环境
Posted 篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos6源码编译安装lnmp环境相关的知识,希望对你有一定的参考价值。 操作系统 版本 64位 CentOS-6.6 10.0.0.20 安装环境所需依赖包 pcre、openssl、zlib是安装nginx时需要的 lnmp 是 linux+nginx+mysql+php 的缩写 [root@manager tmp]# rz [root@manager tmp]# useradd -s /sbin/nologin mysql [root@manager mysql]# cp support-files/mysql.server /etc/init.d/mysqld 1.下载nginx的源码包 2.解压安装 [root@manager ~]# cd /tmp/ [root@manager tmp]# cd nginx-1.8.1 3、编译nginx 4.指定参数编译安装 5.编写nginx启动脚本,并加入系统服务 保存后,更改权限: 如果想开机启动,请执行: 6.更改nginx配置 检查是否有错 登陆网页检验是否成功 5.编译安装 6. 修改配置文件 保存配置文件后,检验配置是否正确的方法为: 7.启动php-fpm 如果想让它开机启动,执行: 检测是否启动: 创建测试文件: 内容如下: 测试: [root@manager ~]# curl localhost/2.php 以上是关于centos6源码编译安装lnmp环境的主要内容,如果未能解决你的问题,请参考以下文章yum -y install gcc automake autoconf libtool make gcc-c++ glibc libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel pcre pcre-devel libmcrypt libmcrypt-devel cmake
cmake是安装mysql时需要的一.编译安装mysql
rz waiting to receive.
Starting zmodem transfer. Press Ctrl+C to cancel.
Transferring mysql-5.5.32-linux2.6-x86_64.tar.gz...
100% 182346 KB 20260 KB/sec 00:00:09 0 Errors
[root@manager tmp]# tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz
[root@manager tmp]# mv mysql-5.5.32-linux2.6-x86_64 /usr/local/mysql
[root@manager tmp]# useradd -s /sbin/nologin mysql
[root@manager tmp]# cd /usr/local/mysql/
[root@manager mysql]# mkdir -p /data/mysql;chown -R mysql:mysql /data/mysql
[root@manager mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
WARNING: The host \'manager\' could not be looked up with resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MySQL version. The MySQL daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MySQL privileges !
Installing MySQL system tables...
OK
Filling help tables...
OK--user
定义数据库的所属主, --datadir
定义数据库安装到哪里,建议放到大空间的分区上,这个目录需要自行创建。这一步骤很关键,如果你看到两个 “OK” 说明执行正确,否则请仔细查看错误信息。[root@manager mysql]# cp support-files/my-large.cnf /etc/my.cnf
[root@manager mysql]# chmod 755 /etc/init.d/mysqld
[root@localhost mysql]# vim /etc/init.d/mysqld
需要修改的地方有 “datadir=/data/mysql” (前面初始化数据库时定义的目录)
[root@localhost mysql]# chkconfig --add mysqld
[root@localhost mysql]# chkconfig mysqld on
[root@localhost mysql]# service mysqld start
如果启动不了,请到 /data/mysql/ 下查看错误日志,这个日志通常是主机名.err. 检查mysql是否启动的命令为:
[root@localhost mysql]# ps aux |grep mysqld
二.编译安装nginx
wget -P /tmp http://nginx.org/download/nginx-1.8.1.tar.gz #指定下载保存到/tmp目录下
[root@manager tmp]# tar xf nginx-1.8.1.tar.gz
[root@manager nginx-1.8.1]# ./configure --help(查看参数)
如果指定用户和用户组,需要先创建#创建用户www和用户组www
groupadd www
useradd -g www www
cd nginx-1.4.4
./configure \\
--prefix=/usr/local/nginx \\
--with-http_realip_module \\
--with-http_sub_module \\
--with-http_gzip_static_module \\
--with-http_stub_status_module \\
--with-pcre
[root@manager nginx-1.8.1]# make && make install
vim /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 30 21
# description: http service.
# Source Function Library
. /etc/init.d/functions
# Nginx Settings
NGINX_SBIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
NGINX_PID="/usr/local/nginx/logs/nginx.pid"
RETVAL=0
prog="Nginx"
start() {
echo -n $"Starting $prog: "
mkdir -p /dev/shm/nginx_temp
daemon $NGINX_SBIN -c $NGINX_CONF
RETVAL=$?
echo
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -TERM
rm -rf /dev/shm/nginx_temp
RETVAL=$?
echo
return $RETVAL
}
reload(){
echo -n $"Reloading $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -HUP
RETVAL=$?
echo
return $RETVAL
}
restart(){
stop
start
}
configtest(){
$NGINX_SBIN -c $NGINX_CONF -t
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
restart
;;
configtest)
configtest
;;
*)
echo $"Usage: $0 {start|stop|reload|restart|configtest}"
RETVAL=1
esac
exit $RETVAL
chmod 755 /etc/init.d/nginx
chkconfig --add nginx
chkconfig nginx on
更改nginx配置
首先把原来的配置文件清空(先备份):
> /usr/local/nginx/conf/nginx.conf
vim /usr/local/nginx/conf/nginx.conf
写入如下内容:
user nobody nobody;
worker_processes 2;
error_log /usr/local/nginx/logs/nginx_error.log crit;
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 6000;
}
http
{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 3526;
server_names_hash_max_size 4096;
log_format combined_realip \'$remote_addr $http_x_forwarded_for [$time_local]\'
\'$host "$request_uri" $status\'
\'"$http_referer" "$http_user_agent"\';
sendfile on;
tcp_nopush on;
keepalive_timeout 30;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
client_header_buffer_size 1k;
large_client_header_buffers 8 4k;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;
client_max_body_size 10m;
client_body_buffer_size 256k;
client_body_temp_path /usr/local/nginx/client_body_temp;
proxy_temp_path /usr/local/nginx/proxy_temp;
fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
fastcgi_intercept_errors on;
tcp_nodelay on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 8k;
gzip_comp_level 5;
gzip_http_version 1.1;
gzip_types text/plain application/x-javascript text/css text/htm application/xml;
server
{
listen 80;
server_name localhost;
index index.html index.htm index.php;
root /usr/local/nginx/html;
location ~ \\.php$ {
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fcgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
}
}
}
[root@manager nginx-1.8.1]# /etc/init.d/nginx configtest
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
三.编译安装php
[root@manager ~]# wget -P /tmp http://am1.php.net/distributions/php-5.3.27.tar.gz
[root@localhost src]# tar zxf php-5.3.27.tar.gz
[root@nginx tmp]# useradd -s /sbin/nologin php-fpm
[root@manager tmp]# cd php-5.3.27
[root@manger php-5.3.27]# ./configure \\
--prefix=/usr/local/php \\
--with-config-file-path=/usr/local/php/etc \\
--enable-fpm \\
--with-fpm-user=php-fpm \\
--with-fpm-group=php-fpm \\
--with-mysql=/usr/local/mysql \\
--with-mysql-sock=/tmp/mysql.sock \\
--with-libxml-dir \\
--with-gd \\
--with-jpeg-dir \\
--with-png-dir \\
--with-freetype-dir \\
--with-iconv-dir \\
--with-zlib-dir \\
--with-mcrypt \\
--enable-soap \\
--enable-gd-native-ttf \\
--enable-ftp \\
--enable-mbstring \\
--enable-exif \\
--enable-zend-multibyte \\
--disable-ipv6 \\
--with-pear \\
--with-curl \\
--with-openssl
make && make install
cp php.ini-production /usr/local/php/etc/php.ini
vim /usr/local/php/etc/php-fpm.conf
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
[www]
listen = /tmp/php-fcgi.sock
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
/usr/local/php/sbin/php-fpm -t
[12-Mar-2018 07:37:02] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful
# 如果出现诸如 “test is successful” 字样,说明配置没有问题。cp /tmp/php-5.3.27/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
service php-fpm start
chkconfig php-fpm on
ps aux |grep php-fpm
看看是不是有很多个进程(大概20多个)。
测试是否解析php文件
vim /usr/local/nginx/html/2.php
<?php
echo "测试php是否解析";
?>
测试php是否解析[root@manager ~]#