Web服务LNMP环境源码搭建,基于最新包

入手VPS,之前倒腾了几次,出现不少问题。网络上的资料有些根本就不适合。所以折腾几次稳定之后,打算自己来做一次。并且整理资料,给自己留备份。
由于我的Vps不能修改内核做优化,所以没办法,只能做其他优化了!
像php.ini已经php-fpm.conf,nginx.conf   include/*.conf等配置文件 我有最后期处理。如果有需要要求可以提供。

当然本文中的版本不是跟我主机相同哦~~http://kinggoo.com

强调:本文中,所有–参数都会变成-显示,请看本文右侧红色字体提示!

Centos 5.5-x86_64
Memory 512
Cpu 共享
所使用源码包为最新稳定包。
如果你的vps一直没有yum update的话,那你更新下吧最好!yum  -y  update
yum -y install gcc gcc-c++ autoconf 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 krb5-devel libidn libidn-devel openssl openssl-devel libtool  libtool-libs libevent-devel libevent openldap openldap-devel nss_ldap openldap-clients openldap-servers libtool-ltdl libtool-ltdl-devel bison

接下来下载源码包
http://au.php.net/distributions/php-5.3.8.tar.gz
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.13.tar.gz
http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz
http://cdnetworks-kr-2.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
http://pecl.php.net/get/memcache-2.2.6.tgz
http://cdnetworks-kr-2.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.12.tar.gz
http://cdnetworks-kr-1.dl.sourceforge.net/project/eaccelerator/eaccelerator/eAccelerator%200.9.6.1/eaccelerator-0.9.6.1.zip
http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
ftp://mirror.aarnet.edu.au/pub/imagemagick/ImageMagick-6.6.8-10.tar.gz
http://pecl.php.net/get/imagick-3.0.1.tgz
http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz
http://mirror.services.wisc.edu/mysql/Downloads/MySQL-5.5/mysql-5.5.15.tar.gz
http://cdnetworks-kr-2.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
http://nginx.org/download/nginx-1.0.6.tar.gz
把上面的下载下来,然后解压一下
我不想一个一个解压,所以直接循环一下,zip那个自己解压一下
for i in ls ./* ;do tar -zxvf $i -C /usr/local/src/ ;done
zip的单独解压一下吧
unzip   eaccelerator-0.9.6.1.zip -d /usr/local/src/

cd /usr/local/src/
安装libiconv
cd  libiconv-1.14
./configure –prefix=/usr/local
make
make install

cd ..
安装libmcrypt
cd  libmcrypt-2.5.8/
./configure
make
make install
ldconfig
cd  libltdl/
./configure –enable-ltdl-install
make && make install
注意:在make的时候如果出现下面情况(下面),请修改Makefile内的LIBTOOL
LIBTOOL=$(SHELL) $(top_builddir)/libtool 为LIBTOOL=$(SHELL)  /usr/bin/libtool
#####如果你系统内/usr/bin/libtool没有这个文件,那么你yum   install libtool-ltdl  libtool-ltdl-devel libtool  libtool-libs libevent-devel libevent

[root@server libltdl]# make
/bin/sh ./libtool –mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.     -g -O2 -c ltdl.c
mkdir .libs
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c ltdl.c  -fPIC -o .libs/ltdl.o
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c ltdl.c -o ltdl.o >/dev/null 2>&1
/bin/sh ./libtool –mode=link gcc  -g -O2  -o libltdl.la -rpath /usr/local/lib -no-undefined -version-info 4:0:1 ltdl.lo -ldl
./libtool: line 3965: ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib ): command not found
./libtool: line 3965: ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib ): command not found
./libtool: line 3965: ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib ): command not found
./libtool: line 3965: ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib ): command not found

*** Warning: linker path does not have real file for library -ldl.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libdl and none of the candidates passed a file format test
*** using a file magic. Last file checked: /usr/lib/../../lib/libdl-2.5.so
*** The inter-library dependencies that have been dropped here will be
*** automatically added whenever a program is linked with this library
*** or is declared to -dlopen it.

安装mhash-0.9.9.9
cd ../../ mhash-0.9.9.9/
./configure
make && make  install

建立相关库的软连接
ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
ln -s /usr/local/lib/libmcrypt.la /usr/lib64/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib64/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib64/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib64/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib64/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib64/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib64/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib64/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib64/libmhash.so.2.0.1
ldconfig

cd ..
cd  mcrypt-2.6.8/
./configure ##注意这步如果出错,错误提示:/bin/rm: cannot remove `libtoolT’: No such file or directory。
解决方法:
编辑configure,在 $RM  "$cfgfile"修改为$RM -f "$cfgfile"即可,我查看了一下这个变量,发现根本就没有这个文件输出会存在。在国外网站上翻了翻,才翻到这个,国内没有方法解决。有说解决方法的根本不好使。

安装cmake
cd..
cd  cmake-2.8.5/
./configure –prefix=/usr && make && make install
cd ..
安装mysql
cd mysql-5.5.15/
groupadd  mysql
useradd -g mysqld mysql
mkdir -p /opt/webserver/mysql
mkdir -p  /data0/mysql
mkdir  /data0/mysql/data
准备配置检查环境 cmake
cmake . -DCMAKE_INSTALL_PREFIX=/opt/webserver/mysql/ \
-DMYSQL_DATADIR=/data0/mysql/data \
-DMYSQL_UNIX_ADDR=/data0/mysql/mysql.sock \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_TCP_PORT=3306 \
-DEXTRA_CHARSETS=all \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DSYSCONFDIR=/data0/mysql
make
make install
cd ..
chmod +w /opt/webserver/mysql/
chown -R mysql.mysql /opt/webserver/mysql/
chown -R mysql.mysql /data0/mysql/
已mysql身份创建数据表
/opt/webserver/mysql/scripts/mysql_install_db –basedir=/opt/webserver/mysql –datadir=/data0/mysql/data –user=mysql

[client]
default-character-set=utf8
port            = 3306
socket          = /data0/mysql/mysql.sock
[mysql]
character-set-server = utf8
replicate-ignore-db = information_schema
user            = mysql
port            = 3306
socket          = /data0/mysql/mysql.sock
basedir         = /opt/webserver/mysql
datadir         = /data0/mysql/data
log-error       = /data0/mysql/mysql_error.log
pid-file        = /data0/mysql/mysql.pid
skip-external-locking
key_buffer_size = 16M
key_buffer = 64
default-storage-engine = MyISAM
max_allowed_packet = 1M
table_open_cache = 64K
net_buffer_length = 8K
sort_buffer_size = 512K
join_buffer_size = 128K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
thread_cache_size = 4
query_cache_size = 0M
query_cache_limit = 2M
query_cache_size = 0M
table_cache = 4
thread_concurrency = 8
log-bin=mysql-bin
binlog_format=mixed
server-id       = 1
skip-innodb
[mysqlump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

别学网上的方法启动,他们的方法根本就不会加载my.cnf
/opt/webserver/mysql/bin/mysqld_safe –defaults-file=/data0/mysql/my.cnf
然后查看一下mysql是否启动成功:
查看进程:ps –fe |grep mysql
查看端口:netstat –an |grep  3306
如果有,那说明已经启动成功,否者你就要去 /data0/mysql/下查看error日志
ln -s /opt//webserver/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18
ln -s /opt//webserver/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
不然等下会报错,到时提示spai/cgi/php error,当然你要详细看错误信息
如果报错是icon的,那说明你没安装或没正确安装,如果是libxml2都是没安装!或者你没有做ln -s 库操作!

 

 

 

 

 

 

 

 

 

 

安装PHP
cd ..
cd 

./configure –prefix=/opt/webserver/php –with-config-file-path=/opt/webserver/php/etc –with-mysql=/opt/webserver/mysql –with-mysqli=/opt/webserver/mysql/bin/mysql_config –with-iconv-dir=/usr/local –with-freetype-dir –with-jpeg-dir –with-png-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-ldap –with-ldap-sasl –with-xmlrpc –enable-zip –enable-soap

make ZEND_EXTRA_LIBS='-liconv'
make install

安装后提示:
PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.
解决方法:当前php目录
下载:wget
http://pear.php.net/go-pear.phar
执行:/opt/webserver/php/bin/php go-pear.phar 
可以选择all,或其他
cp  php.ini-production /opt/webserver/php/etc/php.ini
cd ..
安装memcache
cd memcache-2.2.6/
/opt/webserver/php/bin/phpize
./configure –with-php-config=/opt/webserver/php/bin/php-config
make  &&  make install

cd ..
eaccelerator
cd eaccelerator-0.9.6.1/
/opt/webserver/php/bin/phpize
./configure –enable-eaccelerator=shared –with-php-config=/opt/webserver/php/bin/php-config
make  &&  make install
cd ..

安装PDO_MYSQL
cd  PDO_MYSQL-1.0.2/
/opt/webserver/php/bin/phpize
./configure –with-php-config=/opt/webserver/php/bin/php-config –with-pdo-mysql=/opt/webserver/mysql
make && make  install
cd ..

安装ImageMagick
cd ImageMagick-6.6.8-10/
./configure
make  && make install
cd ..

安装imagick
cd imagick-3.0.1/
/opt/webserver/php/bin/phpize
./configure –with-php-config=/opt/webserver/php/bin/php-config
make  && make install
ldconfig

编辑/opt/webserver/php/etc/php.ini
找到
; extension_dir = "./"
修改为
extension_dir = "/opt/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/"
并在其下方添加如下内容
extension = "memcache.so"
extension = "pdo_mysql.so"
extension = "imagick.so"
找到
output_buffering
修改为
output_buffering = On

找到
;cgi.fix_pathinfo
修改为
cgi.fix_pathinfo=0
找到
; always_populate_raw_post_data = On
修改为
always_populate_raw_post_data = On

 

接下来安装eAccelerator
创建存放缓存
mkdir -p /opt/webserver/eaccelerator_cache

再次编辑你的/opt/webserver/php/etc/php.ini文件添加如下内容保存
[eaccelerator]
zend_extension="/opt/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"
eaccelerator.shm_size="8"
eaccelerator.cache_dir="/opt/webserver/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.keys = "disk_only"
eaccelerator.sessions = "disk_only"
eaccelerator.content = "disk_only"

 

 

创建web访问的用户
groupadd  www
useradd -g www www
mkdir -p /data0/htdocs/test
chmod +w /data0/htdocs/test
chown -R www:www /data0/htdocs/test
OK…

开始准备NGINX
安装Nginx所需的pcre库
cd ..
cd pcre-8.13/
./configure  &&  make  && make install
ldconfig

cd ..
mkdir -p /opt/webserver/nginx
cd  nginx-1.0.6
./configure –user=www –group=www –prefix=/opt/webserver/nginx –with-http_stub_status_module –with-http_ssl_module
make   && make  install

编辑php-fpm.conf文件
cd /opt/webserver/php/etc/
touch php-fpm.conf

vim php-fpm.conf
加入如下内容
[发现网上的文章你抄的真神,明明有错误 他竟然能直接去干下一步,难道不看日志吗?不进行测试配置文件吗,你那日志格式定义错了怎么能跑通呢。无语]

[global]
pid = run/php-fpm.pid
error_log = log/php-fpm.log
log_level = notice
emergency_restart_threshold = 10
emergency_restart_interval = 1m
process_control_timeout = 5s
daemonize = yes
rlimit_files = 10240
rlimit_core = 0
[www]
listen = 127.0.0.1:9000
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.mode = 0666
user = www
group = www
pm = static
pm.max_children = 8
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 640
request_terminate_timeout = 0s
request_slowlog_timeout = 0s
slowlog = log/log.slow
rlimit_files = 10240
rlimit_core = 0
chroot =
chdir =
catch_workers_output = yes
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

php_flag[display_errors] = off
启动
设置资源限制
ulimit -SHn 65535
启动
/opt/webserver/php/sbin/php-fpm
日志文件及pid在/opt/webserver/php/var/下

反回nginx设置
mkdir /data0/logs
chmod +w /data0/logs
chown -R www.www /data0/logs/
编辑nginx配置
vim /opt/webserver/nginx/conf/nginx.conf

[root@server conf]# cat nginx.conf |grep   -E -v "#|^$"
worker_processes  4;
user www www;
error_log  /data0/logs/error.log crit;
pid        /data0/logs/nginx.pid;
worker_rlimit_nofile 10240;
events {
    worker_connections  640;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 8m;
    sendfile        on;
   tcp_nopush     on;
    keepalive_timeout  60;
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;
    gzip  on;
  gzip_min_length  1k;
  gzip_buffers     4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_types       text/plain application/x-javascript text/css application/xml;
  gzip_vary on;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   /data0/htdocs/test;
            index  index.php index.html index.htm;
        }
        location ~ ^/.+\.php$
        {
                root /data0/htdocs/blog/;
                rewrite /(.*\.php?) /$1 break;
                include fastcgi_params;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param SCRIPT_FILENAME /data0/htdocs/test$fastcgi_script_name;}
        location ~ .*\.(php|php5)?$
        {    
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index index.php;
                include fastcgi.conf;
        }
        log_format  main  '$remote_addr – $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
        access_log  /data0/logs/access_blog.log  main;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

 

 

 

 

 

 

 

 

 

错误信息:
make: *** [sapi/cli/php] Error 1 解决办法
ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_ctor’:
/home/king/php-5.2.13/ext/iconv/iconv.c:2491: undefined reference to `libiconv_open’
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
[root@test php-5.2.13]# vi Makefile在安裝 PHP 到系统中时要是发生「undefined reference to libiconv_open’」之类的错误信息,那表示在「./configure 」沒抓好一些环境变数值。错误发生点在建立「-o sapi/cli/php」是出错,没給到要 link 的 iconv 函式库参数。 解决方法:编辑Makefile 大约77 行左右的地方: EXTRA_LIBS = ….. -lcrypt 在最后加上 -liconv,例如: EXTRA_LIBS = ….. -lcrypt -liconv 然后重新再次 make 即可。
或者用另一种办法
make ZEND_EXTRA_LIBS=’-liconv’  (推荐)
ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/
上面不行,尝试下面:
没有安装
libxml2
ftp://xmlsoft.org/libxml2/libxml2-2.6.11.tar.gz
还需要关联
zlib
http://www.zlib.net/zlib-1.2.3.tar.gz
在重新编译 php
加上 –with-libxml-dir= 安装libxml2 路径

错误提示2:
/usr/local/src/php-5.3.5/sapi/cli/php: error while loading shared libraries: libltdl.so.3: cannot open shared object file: No such file or directory
make: *** [ext/phar/phar.php] 错误 127
这种,如果你按照上面做的来,应该不会出问题,除非你没做ln -s 这步,到上面找找是不是哪步没做

 

php-fpm.conf参数说明
emergency_restart_threshold 默认值 10
emergency_restart_interval  默认值 1m = 60s
表示在emergency_restart_interval(60)秒内出现SIGSEGV或者SIGBUS错误的php-cgi进程数如果超过emergency_restart_threshold个,php-fpm就会优雅重启。
request_terminate_timeout
请求处理超时时间,类似PHP中的max_execution_time
request_slowlog_timeout
超过这个时间的定义为slow请求。这些请求会进入slowlog日志
rlimit_files
文件句柄的最大限制
max_requests
在重启之前每个进程最多处理多少个请求。
process_control_timeout =5s

client_max_body_size
上传文件大小的问题client_max_body_size
http://blog.51yip.com/manual/nginx/StandardHTTPModules/HTTPCore.html
http://blog.sina.com.cn/s/blog_7429b9c80100s1xz.html

nginx log 记录请求的头信息
记录访问的log,为了在出现特殊情况时,方便检查出现问题的地方。
log_format access '$remote_addr – $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log /var/log/51yip.log access;
记录下,用户ip,用户真实ip,用户访问时间,用户访问的游览器信息等。这里面这样的$remote_addr变量是从哪来的呢?
$arg_PARAMETER 这个变量包含在查询字符串时GET请求PARAMETER的值。
$args 这个变量等于请求行中的参数。
$binary_remote_addr 二进制码形式的客户端地址。
$body_bytes_sent
$content_length 请求头中的Content-length字段。
$content_type 请求头中的Content-Type字段。
$cookie_COOKIE cookie COOKIE的值。
$document_root 当前请求在root指令中指定的值。
$document_uri 与$uri相同。
$host 请求中的主机头字段,如果请求中的主机头不可用,则为服务器处理请求的服务器名称。
$is_args 如果$args设置,值为"?",否则为""。
$limit_rate 这个变量可以限制连接速率。
$nginx_version 当前运行的nginx版本号。
$query_string 与$args相同。
$remote_addr 客户端的IP地址。
$remote_port 客户端的端口。
$remote_user 已经经过Auth Basic Module验证的用户名。
$request_filename 当前连接请求的文件路径,由root或alias指令与URI请求生成。
$request_body 这个变量(0.7.58+)包含请求的主要信息。在使用proxy_pass或fastcgi_pass指令的location中比较有意义。
$request_body_file 客户端请求主体信息的临时文件名。
$request_completion 请求完成
$request_method 这个变量是客户端请求的动作,通常为GET或POST。包括0.8.20及之前的版本中,这个变量总为main request中的动作,如果当前请求是一个子请求,并不使用这个当前请求的动作。
$request_uri 这个变量等于包含一些客户端请求参数的原始URI,它无法修改,请查看$uri更改或重写URI。
$schemeHTTP 方法(如http,https)。按需使用,例:
rewrite ^(.+)$ $scheme://example.com$1 redirect;
$server_addr 服务器地址,在完成一次系统调用后可以确定这个值,如果要绕开系统调用,则必须在listen中指定地址并且使用bind参数。
$server_name 服务器名称。
$server_port 请求到达服务器的端口号。
$server_protocol 请求使用的协议,通常是HTTP/1.0或HTTP/1.1。
$uri 请求中的当前URI(不带请求参数,参数位于$args),可以不同于浏览器传递的$request_uri的值,它可以通过内部重定向,或者使用index指令进行修改。
上面的这些是nginx 支持一些内置的变量,当然我们可以自定义,例如
$http_x_forwarded_for
这个变量就是自定义的,用来获得用了代理用户的真实IP。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 

 

MYSQL
参数说明:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //安装目录
-DMYSQL_DATADIR=/usr/local/mysql/data //数据库存放目录
-DWITH_MYISAM_STORAGE_ENGINE=1 //安装myisam存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 //安装innodb存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 //安装archive存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 //安装blackhole存储引擎
-DENABLED_LOCAL_INFILE=1 //允许从本地导入数据
-DDEFAULT_CHARSET=utf8 //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci //校验字符
-DEXTRA_CHARSETS=all //安装所有扩展字符集
-DMYSQL_TCP_PORT=3306 //MySQL监听端口
-DMYSQL_USER=mysql //MySQL用户名
其他参数:
-DWITH-EMBEDDED_SERVER=1 //编译成embedded MySQL library (libmysqld.a)
-DSYSCONFDIR=/etc //MySQL配辑文件
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock //Unix socket 文件路径
-DWITH_READLINE=1 //快捷键功能
-DWITH_SSL=yes //SSL
-DWITH_MEMORY_STORAGE_ENGINE=1 //安装memory存储引擎
-DWITH_FEDERATED_STORAGE_ENGINE=1 //安装frderated存储引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 //安装数据库分区
-DINSTALL_PLUGINDIR=/usr/local/mysql/plugin //插件文件及配置路径

- THE END -
版权声明:
转载原创文章请注明,文章出处:http://kinggoo.com
原文地址:http://kinggoo.com/app-nginx-lnmp-new1-0-3.htm
发表评论?

6 条评论。

  1. /opt/webserver/mysql/scripts/mysql_install_db –basedir=/opt/webserver/mysql –datadir=/data0/mysql/data –user=mysql

    应该改为:
    /opt/webserver/mysql/scripts/mysql_install_db –basedir=/opt/webserver/mysql –datadir=/data0/mysql/data –user=mysqld

  2. groupadd mysql
    useradd -g mysqld mysql
    ———-以上似乎有误。但忘记是哪错了 – ———–
    chown -R mysql.mysql /opt/webserver/mysql/
    chown -R mysql.mysql /data0/mysql/
    ———-以上有误,问过大湿,应改成———-
    chown -R mysqld.mysql /opt/webserver/mysql/
    chown -R mysqld.mysql /data0/mysql/

发表评论


Trackbacks and Pingbacks: