为了账号安全,请及时绑定邮箱和手机立即绑定

LEMP部署安装for RHEL AS4.6

标签:
MySQL


系统环境:

Red Hat Enterprise Linux AS release 4 (Nahant Update 6)

 

所需软件:

 

mhash-0.9.9.9.tar.bz2

ImageMagick-6.6.1-10.tar.gz

mysql-5.5.3-m3.tar.gz

imagick-2.3.0.tgz

nginx-0.8.46.tar.gz

libiconv-1.13.1.tar.gz

pcre-8.10.zip

libmcrypt-2.5.8.tar.gz

PDO_MYSQL-1.0.2.tgz

mcrypt-2.6.8.tar.gz

php-5.2.14-fpm-0.5.14.diff.gz

memcache-2.2.5.tgz

php-5.2.14.tar.gz

 

安装PHP环境所需软件

---------------------------------

 

tar zxvf libiconv-1.13.1.tar.gz 

cd libiconv-1.13.1/ 

./configure --prefix=/usr/local 

make 

make install 

cd .. 

  

tar zxvf libmcrypt-2.5.8.tar.gz   

cd libmcrypt-2.5.8/ 

./configure 

make 

make install 

/sbin/ldconfig 

cd libltdl/ 

./configure --enable-ltdl-install 

make 

make install 

cd .. 

cd .. 

  

tar jxvf mhash-0.9.9.9.tar.bz2 

cd mhash-0.9.9.9/ 

./configure 

make 

make install 

cd .. 

 

  

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 

  

tar zxvf mcrypt-2.6.8.tar.gz 

cd mcrypt-2.6.8/ 

/sbin/ldconfig 

LD_LIBRARY_PATH=/usr/local/lib ./configure 

make 

make install 

cd .. 

-------------------------------

安装MySQL 5.5.3-m3

-------------------------------

/usr/sbin/groupadd mysql 

/usr/sbin/useradd -g mysql mysql 

tar zxvf mysql-5.5.3-m3.tar.gz 

cd mysql-5.5.3-m3/ 

./configure 

--prefix=/usr/local/mysql/ 

--enable-assembler 

--with-extra-charsets=complex 

--enable-thread-safe-client 

--with-big-tables 

--with-readline 

--with-ssl 

--with-embedded-server 

--enable-local-infile 

--with-plugins=partition,innobase,myisammrg 

make && make install 

chmod +w /usr/local/mysql 

chown -R mysql:mysql /usr/local/mysql 

echo "export PATH=$PATH:/usr/local/mysql/bin/">>/etc/profile 

source /etc/profile 

/usr/local/mysql/bin/mysql_install_db --user=mysql 

cp support-files/mysql.server /etc/init.d/mysqld 

chmod 755 /etc/init.d/mysqld 

chkconfig --add mysqld 

cd ../ 

  

vi /etc/my.cnf 

#basedir=/var/lib        #注释掉这行 

  

/etc/init.d/mysqld start 

mysqladmin -uroot password elain 

---------------------------------------

 

安装PHP(FastCGI模式)

---------------------------------------

tar jxvf php-5.2.6.tar.bz2 

gzip -cd php-5.2.6-fpm-0.5.8.diff.gz | patch -d php-5.2.6 -p1 

cd php-5.2.6/ 

./configure 

--prefix=/usr/local/php 

--with-config-file-path=/usr/local/php/etc 

--with-mysql=/usr/local/mysql 

--with-iconv-dir=/usr/local 

--with-freetype-dir 

--with-zlib 

--with-curl 

--enable-fastcgi 

--enable-fpm 

--enable-force-cgi-redirect 

--enable-mbstring 

--with-mcrypt 

--with-openssl 

--with-mhash 

--enable-sockets 

--enable-zip 

make ZEND_EXTRA_LIBS='-liconv' 

make install 

cp php.ini-dist /usr/local/php/etc/php.ini 

cd ../ 

 

安装PHP扩展模块

-------------------------------------

tar zxvf memcache-2.2.5.tgz 

cd memcache-2.2.5/ 

/usr/local/php/bin/phpize 

./configure --with-php-config=/usr/local/php/bin/php-config 

make 

make install 

cd ../ 

  

tar zxvf PDO_MYSQL-1.0.2.tgz 

cd PDO_MYSQL-1.0.2/ 

/usr/local/php/bin/phpize 

./configure 

--with-php-config=/usr/local/php/bin/php-config 

--with-pdo-mysql=/usr/local/mysql 

make 

make install 

cd ../ 

  

 

配置PHP

----------------------------------

修改php.ini文件

 

vi /usr/local/php/etc/php.ini

vi /usr/local/php/etc/php.ini 

 

手工修改:

 

查找/usr/local/php/etc/php.ini中的

 

extension_dir = "./"    #(约491行)   

 修改为  

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/" 

 

并在此行后增加以下几行

extension = "memcache.so" 

extension = "pdo_mysql.so" 

extension = "imagick.so" 

 

再查找 output_buffering = Off    (约101行)

修改为 output_buffering = On

 

再查找 ;cgi.fix_pathinfo=0       (约523行)

修改为 cgi.fix_pathinfo=0,    即取消注释,使生效,防止Nginx文件类型错误解析漏洞。

-------

 

 

创建www用户和组,以及供www.elain.org使用的目录:

 

/usr/sbin/groupadd www 

/usr/sbin/useradd -g www www 

mkdir -p /www/htdocs 

chmod +w /www/htdocs 

chown -R www:www /www 

 

 

创建php-fpm配置文件(php-fpm是为PHP打的一个FastCGI管理补丁,可以平滑变更php.ini配置而无需重启php-cgi):

在/usr/local/php/etc/目录中创建php-fpm.conf文件:

 

vi /usr/local/php/etc/php-fpm.conf 

 

输入以下内容:

 

 

   

 

<?xml version="1.0" ?> 

 

<configuration> 

 

 

 

  All relative paths in this config are relative to php's install prefix 

 

 

 

  <section name="global_options"> 

 

 

 

    Pid file 

 

    <value name="pid_file">/usr/local/php/logs/php-fpm.pid</value> 

 

 

 

    Error log file 

 

    <value name="error_log">/usr/local/php/logs/php-fpm.log</value> 

 

 

 

    Log level 

 

    <value name="log_level">notice</value> 

 

 

 

    When this amount of php processes exited with SIGSEGV or SIGBUS ... 

 

    <value name="emergency_restart_threshold">10</value> 

 

 

 

    ... in a less than this interval of time, a graceful restart will be initiated. 

 

    Useful to work around accidental curruptions in accelerator's shared memory. 

 

    <value name="emergency_restart_interval">1m</value> 

 

 

 

    Time limit on waiting child's reaction on signals from master 

 

    <value name="process_control_timeout">5s</value> 

 

 

 

    Set to 'no' to debug fpm 

 

    <value name="daemonize">yes</value> 

 

 

 

  </section> 

 

 

 

  <workers> 

 

 

 

    <section name="pool"> 

 

 

 

      Name of pool. Used in logs and stats. 

 

      <value name="name">default</value> 

 

 

 

      Address to accept fastcgi requests on. 

 

      Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket' 

 

      <value name="listen_address">127.0.0.1:9000</value> 

 

 

 

      <value name="listen_options"> 

 

 

 

        Set listen(2) backlog 

 

        <value name="backlog">-1</value> 

 

 

 

        Set permissions for unix socket, if one used. 

 

        In Linux read/write permissions must be set in order to allow connections from web server. 

 

        Many BSD-derrived systems allow connections regardless of permissions. 

 

        <value name="owner"></value> 

 

        <value name="group"></value> 

 

        <value name="mode">0666</value> 

 

      </value> 

 

 

 

      Additional php.ini defines, specific to this pool of workers. 

 

      <value name="php_defines"> 

 

        <value name="sendmail_path">/usr/sbin/sendmail -t -i</value> 

 

        <value name="display_errors">0</value> 

 

      </value> 

 

 

 

      Unix user of processes 

 

      <value name="user">www</value> 

 

 

 

      Unix group of processes 

 

      <value name="group">www</value> 

 

 

 

      Process manager settings 

 

      <value name="pm"> 

 

 

 

        Sets style of controling worker process count. 

 

        Valid values are 'static' and 'apache-like' 

 

        <value name="style">static</value> 

 

 

 

        Sets the limit on the number of simultaneous requests that will be served. 

 

        Equivalent to Apache MaxClients directive. 

 

        Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi 

 

        Used with any pm_style. 

 

        <value name="max_children">8</value> 

 

 

 

        Settings group for 'apache-like' pm style 

 

        <value name="apache_like"> 

 

 

 

          Sets the number of server processes created on startup. 

 

          Used only when 'apache-like' pm_style is selected 

 

          <value name="StartServers">20</value> 

 

 

 

          Sets the desired minimum number of idle server processes. 

 

          Used only when 'apache-like' pm_style is selected 

 

          <value name="MinSpareServers">5</value> 

 

 

 

          Sets the desired maximum number of idle server processes. 

 

          Used only when 'apache-like' pm_style is selected 

 

          <value name="MaxSpareServers">35</value> 

 

 

 

        </value> 

 

 

 

      </value> 

 

 

 

      The timeout (in seconds) for serving a single request after which the worker process will be terminated 

 

      Should be used when 'max_execution_time' ini option does not stop script execution for some reason 

 

      '0s' means 'off' 

 

      <value name="request_terminate_timeout">0s</value> 

 

 

 

      The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file 

 

      '0s' means 'off' 

 

      <value name="request_slowlog_timeout">0s</value> 

 

 

 

      The log file for slow requests 

 

      <value name="slowlog">logs/slow.log</value> 

 

 

 

      Set open file desc rlimit 

 

      <value name="rlimit_files">65535</value> 

 

 

 

      Set max core size rlimit 

 

      <value name="rlimit_core">0</value> 

 

 

 

      Chroot to this directory at the start, absolute path 

 

      <value name="chroot"></value> 

 

 

 

      Chdir to this directory at the start, absolute path 

 

      <value name="chdir"></value> 

 

 

 

      Redirect workers' stdout and stderr into main error log. 

 

      If not set, they will be redirected to /dev/null, according to FastCGI specs 

 

      <value name="catch_workers_output">yes</value> 

 

 

 

      How much requests each process should execute before respawn. 

 

      Useful to work around memory leaks in 3rd party libraries. 

 

      For endless request processing please specify 0 

 

      Equivalent to PHP_FCGI_MAX_REQUESTS 

 

      <value name="max_requests">1024</value> 

 

 

 

      Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect. 

 

      Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+) 

 

      Makes sense only with AF_INET listening socket. 

 

      <value name="allowed_clients">127.0.0.1</value> 

 

 

 

      Pass environment variables like LD_LIBRARY_PATH 

 

      All $VARIABLEs are taken from current environment 

 

      <value name="environment"> 

 

        <value name="HOSTNAME">$HOSTNAME</value> 

 

        <value name="PATH">/usr/local/bin:/usr/bin:/bin</value> 

 

        <value name="TMP">/tmp</value> 

 

        <value name="TMPDIR">/tmp</value> 

 

        <value name="TEMP">/tmp</value> 

 

        <value name="OSTYPE">$OSTYPE</value> 

 

        <value name="MACHTYPE">$MACHTYPE</value> 

 

        <value name="MALLOC_CHECK_">2</value> 

 

      </value> 

 

 

 

    </section> 

 

 

 

  </workers> 

 

 

 

</configuration> 

 

 

  

注:如果安装 Nginx + PHP 用于程序调试,请将以上的0改为1,以便显示PHP错误信息,否则,Nginx 会报状态为500的空白错误页):

 

启动php-cgi进程,监听127.0.0.1的9000端口,进程数为128(如果服务器内存小于3GB,可以只开启64个进程),用户为www:

  

ulimit -SHn 65535 

/usr/local/php/sbin/php-fpm start 

 

注:/usr/local/php/sbin/php-fpm还有其他参数,包括:start|stop|quit|restart|reload|logrotate,修改php.ini后不重启php-cgi,重新加载配置文件使用reload。

--------------------------------------------------------------------------------

安装Nginx 0.8.46

-------------------------------

安装Nginx所需的pcre库:

 

unzip pcre-8.10.zip 

cd pcre-8.10/ 

./configure 

make && make install 

cd ../ 

 

安装Nginx

 

tar zxvf nginx-0.8.46.tar.gz 

cd nginx-0.8.46/ 

./configure --user=www --group=www 

--prefix=/usr/local/nginx 

--with-http_stub_status_module 

--with-http_ssl_module 

make && make install 

cd ../ 

 

创建Nginx日志目录

 

mkdir -p /www/logs 

chmod +w /www/logs 

chown -R www:www /www/logs 

 

创建Nginx配置文件

 

vi /usr/local/nginx/conf/nginx.conf

 

输入以下内容:

user  www www; 

  

worker_processes 8; 

  

error_log  /www/logs/nginx_error.log  crit; 

  

pid        /usr/local/nginx/nginx.pid; 

  

#Specifies the value for maximum file descriptors that can be opened by this process.   

worker_rlimit_nofile 65535; 

  

events   

  use epoll; 

  worker_connections 65535; 

  

http   

  include       mime.types; 

  default_type  application/octet-stream; 

  

  #charset  gb2312; 

        

  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; 

  

  tcp_nodelay on; 

  

  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; 

  

  #limit_zone  crawler  $binary_remote_addr  10m; 

  

  server 

  { 

    listen       80; 

    server_name  www.elain.org; 

    index index.html index.htm index.php; 

    root  /www/htdocs; 

  

    #limit_conn   crawler  20;      

                               

    location ~ .*.(php|php5)?$ 

    {        

      #fastcgi_pass  unix:/tmp/php-cgi.sock; 

      fastcgi_pass  127.0.0.1:9000; 

      fastcgi_index index.php; 

      include fcgi.conf; 

    } 

      

    location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ 

    { 

      expires      30d; 

    } 

  

    location ~ .*.(js|css)?$ 

    { 

      expires      1h; 

    }      

  

    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  /www/logs/access.log  access; 

      } 

  

   server 

  { 

    listen  80; 

    server_name  status.elain.org; 

  

    location / { 

    stub_status on; 

    access_log   off; 

    } 

  } 

}

  

创建fcgi.conf文件:

 

vi /usr/local/nginx/conf/fcgi.conf 

 

输入以下内容:

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1; 

fastcgi_param  SERVER_SOFTWARE    nginx; 

  

fastcgi_param  QUERY_STRING       $query_string; 

fastcgi_param  REQUEST_METHOD     $request_method; 

fastcgi_param  CONTENT_TYPE       $content_type; 

fastcgi_param  CONTENT_LENGTH     $content_length; 

  

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name; 

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name; 

fastcgi_param  REQUEST_URI        $request_uri; 

fastcgi_param  DOCUMENT_URI       $document_uri; 

fastcgi_param  DOCUMENT_ROOT      $document_root; 

fastcgi_param  SERVER_PROTOCOL    $server_protocol; 

  

fastcgi_param  REMOTE_ADDR        $remote_addr; 

fastcgi_param  REMOTE_PORT        $remote_port; 

fastcgi_param  SERVER_ADDR        $server_addr; 

fastcgi_param  SERVER_PORT        $server_port; 

fastcgi_param  SERVER_NAME        $server_name; 

  

# PHP only, required if PHP was built with --enable-force-cgi-redirect 

fastcgi_param  REDIRECT_STATUS    200; 

 

启动Nginx

 

ulimit -SHn 65535 

/usr/local/nginx/sbin/nginx 

 

配置开机自动启动Nginx + PHP

 

vi /etc/rc.local 

 

在末尾增加以下内容:

 

ulimit -SHn 65535 

/usr/local/php/sbin/php-fpm start 

/usr/local/nginx/sbin/nginx 

 

 

nginx重启

 

killall -9 nginx;/usr/local/nginx/sbin/nginx 

  

kill -HUP `cat /usr/local/nginx/nginx.pid`  #平滑重启 

 

/usr/local/nginx/sbin/nginx -s reload 

  

killall -HUP nginx 

  

 

 

转载请注明: 转载自http://www.elain.org

本文链接地址:LEMP部署安装for RHEL AS4.6

 

©著作权归作者所有:来自51CTO博客作者elain2012的原创作品,如需转载,请注明出处,否则将追究法律责任

phpmysql休闲部署安装


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消