REHL 5.4 下编译安装LNMP(上)
2019独角兽企业重金招聘Python工程师标准>>>
此文多处从网络博文里借鉴,自己整合如下
系统平台:RHEL 5.4(32位系统)2.6.18-406.el5
yum安装相关函数库,方便快捷,节省时间,避免得不偿失。233333
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 openldap openldap-devel nss_ldap openldap-clients openldap-servers
下载安装包
cd /usr/local/src
wget http://blog.s135.com/soft/linux/nginx_php/nginx/nginx-0.8.46.tar.gz \
wget http://blog.s135.com/soft/linux/nginx_php/php/php-5.2.14.tar.gz \
wget http://blog.s135.com/soft/linux/nginx_php/phpfpm/php-5.2.14-fpm-0.5.14.diff.gz \
wget http://blog.s135.com/soft/linux/nginx_php/mysql/mysql-5.5.3-m3.tar.gz \
wget http://blog.s135.com/soft/linux/nginx_php/libiconv/libiconv-1.13.1.tar.gz \
wget http://blog.s135.com/soft/linux/nginx_php/mcrypt/libmcrypt-2.5.8.tar.gz \
wget http://blog.s135.com/soft/linux/nginx_php/mcrypt/mcrypt-2.6.8.tar.gz \
wget http://blog.s135.com/soft/linux/nginx_php/memcache/memcache-2.2.5.tgz \
wget http://blog.s135.com/soft/linux/nginx_php/mhash/mhash-0.9.9.9.tar.gz \
wget http://blog.s135.com/soft/linux/nginx_php/pcre/pcre-8.10.tar.gz \
wget http://blog.s135.com/soft/linux/nginx_php/eaccelerator/eaccelerator-0.9.6.1.tar.bz2 \
wget http://blog.s135.com/soft/linux/nginx_php/pdo/PDO_MYSQL-1.0.2.tgz \
wget http://blog.s135.com/soft/linux/nginx_php/imagick/ImageMagick.tar.gz \
wget http://blog.s135.com/soft/linux/nginx_php/imagick/imagick-2.3.0.tgz
1.安装libiconv
对文本进行编码间的转换,用它来处理中文各种编码之间的转换。
#tar zxvf libiconv-1.13.1.tar.gz
#cd libiconv-1.13.1/
#./configure --prefix=/usr/local
#make
#make install
cd ../
2.安装libmcrypt 实现加密功能的库。
# 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 ../
3. 安装mhash(哈稀函数库)
# tar zxvf mhash-0.9.9.9.tar.gz
# 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
4. 安装mcrypt
# tar zxvf mcrypt-2.6.8.tar.gz
# cd mcrypt-2.6.8/
# /sbin/ldconfig
#./configure
# make
# make install
# cd ../
安装mysql
groupadd mysql
useradd -g mysql mysql
mkdir -p /usr/local/mysql
chown mysql:mysql -R /usr/local/mysql
tar zxvf mysql-5.5.3-m3.tar.gz
cd mysql-5.5.3-m3
./configure --prefix=/usr/local/mysql --without-debug --enable-thread-safe-client --with-pthread --enable-assembler --enable-profiling --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-extra-charsets=all --with-plugins=all --with-mysqld-user=mysql --without-embedded-server --with-server-suffix=-community --with-unix-socket-path=/tmp/mysql.sock
make && make install
#初始化数据库
/usr/local/mysql/bin/mysql_install_db --user=mysql
将MySQL添加到系统服务
cp ./support-files/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
chkconfig --add mysql
chkconfig mysql on
#启动数据库
service mysql start or /usr/local/mysql/bin/mysqld_safe --user=mysql &
#修改 mysql 登录密码
/usr/local/mysql/bin/mysqladmin -uroot password "hello"
#用 mysql 登录
/usr/local/mysql/bin/mysql -uroot -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'hello';
FLUSH PRIVILEGES;
#准备 mysql 配置文件
cp ./support-files/my-medium.cnf /etc/my.cnf
#设置连接字符集添加如下两行
vi /etc/my.cnf
[client]
default-character-set=utf8
#重启 mysql 服务让字符集生效
pkill mysql or /usr/local/mysql/bin/mysqladmin shutdown #关闭数据库
/usr/local/mysql/bin/mysqld_safe --user=mysql &
ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.16 /usr/lib
建立软连接,不然编译php会报错
5. 编译安装 PHP( FastCGI 模式)
tar zxvf php-5.2.14.tar.gz
gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1
cd php-5.2.14/
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc \
--with-mysql=/usr/local/mysql --with-mysqli=/usr/local/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-discard-path --enable-safe-mode \
--enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl \
--with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect \
--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
注:Nginx+PHP整合,在安装时必须启用-–enable-fastcgi和--enable-fpm
make ZEND_EXTRA_LIBS='-liconv'
make install
cp php.ini-dist /usr/local/php/etc/php.ini
cd ../
6.准备编译安装 PHP5 扩展模块
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
说明:memcache库的位置Installing shared extensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
cd ../
安装eaccelerator php加速
tar jxvf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1/
/usr/local/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
make && make install
cd ../
安装PDO_MYSQL(数据库连接的支持)
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 ../
安装ImageMagick是Linux下非常强大的图象处理函数与GD类似
tar zxvf ImageMagick.tar.gz
cd ImageMagick-6.5.1-2/
./configure
make
make install
cd ../
安装imagick(连接PHP和ImageMagick的通道)
tar zxvf imagick-2.3.0.tgz
cd imagick-2.3.0/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
cd ../
7. 修改 php.ini 文件,让 php 模块生效
vi /usr/local/php/etc/php.ini
查找
extension_dir = "./"
修改为
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
修改为output_buffering = On
去掉注释cgi.fix_pathinfo=0,防止 Nginx 文件类型错误解析漏洞
8.配置 eaccelerator 加速 PHP
mkdir -p /usr/local/eaccelerator_cache
#准备 eaccelerator 缓存目录
vi /usr/local/php/etc/php.ini
到配置文件的最末尾,粘上以下内容:
[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/usr/local/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"
9.准备 php-cgi 和 nginx 进程执行者用户
groupadd nginx
useradd -g nginx nginx
10. 创建 php-fpm 配置文件- php-fpm.conf
最好备份下/usr/local/php/etc/php-fpm.conf
建立新的配置内容如下
vi /usr/local/php/etc/php-fpm.conf
<?xml version="1.0" ?>
<configuration>
<section name="global_options">
<value name="pid_file">/usr/local/php/logs/php-fpm.pid</value>
<value name="error_log">/usr/local/php/logs/php-fpm.log</value>
<value name="log_level">notice</value>
<value name="emergency_restart_threshold">10</value>
<value name="emergency_restart_interval">1m</value>
<value name="process_control_timeout">5s</value>
<value name="daemonize">yes</value>
</section>
<workers>
<section name="pool">
<value name="name">default</value>
<value name="listen_address">127.0.0.1:9000</value>
<value name="listen_options">
<value name="backlog">-1</value>
<value name="owner"></value>
<value name="group"></value>
<value name="mode">0666</value>
</value>
<value name="php_defines">
<value name="sendmail_path">/usr/sbin/sendmail -t -i</value>
<value name="display_errors">1</value>
</value>
<value name="user">nginx</value>
<value name="group">nginx</value>
<value name="pm">
<value name="style">static</value>
<value name="max_children">128</value>
<value name="apache_like">
<value name="StartServers">20</value>
<value name="MinSpareServers">5</value>
<value name="MaxSpareServers">35</value>
</value>
</value>
<value name="request_terminate_timeout">0s</value>
<value name="request_slowlog_timeout">0s</value>
<value name="slowlog">logs/slow.log</value>
<value name="rlimit_files">51200</value>
<value name="rlimit_core">0</value>
<value name="chroot"></value>
<value name="chdir"></value>
<value name="catch_workers_output">yes</value>
<value name="max_requests">500</value>
<value name="allowed_clients">127.0.0.1</value>
<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>
说明
<value name="display_errors">0</value>
#0 改成 1,页面上会输出错误日志
Unix user of processes
<value name="user">nginx</value>
Unix group of processes
<value name="group">nginx</value>
<value name="max_children">128</value>
#最大子进程数 128,如果内存小于 2G,则 64 个最佳
<value name="rlimit_files">65535</value>
# Set open file desc rlimit,同时打开的文件数,linux 系统允许同时打开的文件数为 1024,修改
linux 系统中允许同时打开的文件,ulimit -SHn 65535,而且这个参数重启后还能生效,加到
/etc/profile 全局配置文件的最后,开机就会生效,ulimit -a 查看 open files 65535
<value name="max_requests">1024</value>
#最大请求数, How much requests each process should execute before respawn.一个子进程能够
回应 1042 个请求
11. 启动 php-cgi(fastcgi)进程,监听 127.0.0.1 的 9000 端口,进程数为 128(如果服务器内
存小于 3GB,可以只开启 64 个进程),用户为 nginx:
/usr/local/php/sbin/php-fpm start
转载于:https://my.oschina.net/u/2404183/blog/480529
REHL 5.4 下编译安装LNMP(上)相关推荐
- centos系统php环境配置,CentOS 6.4系统下编译安装LNMP和配置PHP环境具体步骤
一.准备工作 上pkgs.org下载rmpforge.rpmforge是一个第三方yum源. 选择相应的版本下载安装. // 安装成功后,清空yum list 并 重新获取 [root@pangou ...
- CentOS6.9编译安装LNMP环境
CentOS6.9编译安装LNMP环境 今天尝试一下用编译的方式来搭建lnmp运行环境.所有软件都采用当前最新版本,除了CentOS.这是由于目前企业大多数应该都还在使用CentOS6的缘故,并且Ce ...
- linux nginx编译安装mysql_Centos7下编译安装配置Nginx+PHP+MySql环境
序言 这次玩次狠得.除了编译器使用yum安装,其他全部手动编译.哼~ 看似就Nginx.PHP.MySql三个东东,但是它们太尼玛依赖别人了. 没办法,想用它们就得老老实实给它们提供想要的东西. 首先 ...
- Ubuntu16下编译安装Open Babel2.4.1和python绑定
上一篇介绍的是CentOS 7下编译安装Open Babel2.4.1和python绑定点击打开链接 一.Open Babel简介 Open Babel是一款开源自由软件,使用Open Babel可以 ...
- linux 保存编译log,(转)Linux下编译安装log4cxx
一个项目的服务器端在Linux平台下,用到了开源日志库log4cxx,这个库是apache项目的一个子库.功能很不错.下面记录下它的编译和安装过程. 第一步安装apr-1.3.8,顺序不能错,它必须首 ...
- 在Ubuntu下编译安装atom编辑器
2019独角兽企业重金招聘Python工程师标准>>> 今天一大早就在开源中国首页看到了atom编辑器可以下载使用的消息,打开一看只提供Mac版的安装包.于是去Github上看了看, ...
- linux mysql5.6编译_Linux 环境下编译安装MySQL5.6的笔记记录
一.首先搭建好Linux环境,我这边使用的是redhat enterprise 6.5,并且建议磁盘划分逻辑卷,以便后期的扩容工作. 二.环境搭建好了之后,我们就要去准备MySQL的安装文件,到现在为 ...
- centos 编译mysql5.6_centos下编译安装MySQL5.6
,虚拟机centos6.5mini 网络适配器"桥接模式" 继续上一次的Apache编译后,编译安装MySQL5.6 MySQL5.6和以前的版本不同之处在于用cmake就行编译, ...
- freerdp 解压安装_Ubuntu下编译安装运作FreeRdp连接Windows
Ubuntu下编译安装运行FreeRdp连接Windows. linux下编译源码进行USB重定向到远程桌面的测试,经过参数的正确配置,可以正常的重定向.具体的操作步骤如下: ⑴在虚拟机上安装git, ...
- linux3.10.53编译,根据官方文档在Linux下编译安装Apache
根据官方文档在Linux下编译安装Apache 前言 永远记住官方文档才是最准确的安装手册,这篇文章仅为对官方文档的解读和补充,学习提升务必阅读官方文档: http://httpd.apache.or ...
最新文章
- 一个带有误差棒的另一个箱图
- php如何对 mysql 中text类型拆分存入一个数组_PHP、Mysql笔试题
- 常考数据结构与算法:平衡二叉树
- Linux下编译Boost
- potplayer 多个进程_操作系统 | 进程同步与进程互斥
- 静态内部类 java 1614958017
- Linux操作系统RedHat6.5安装
- 查看ORACLE的实际执行计划
- c语言bmp转换jpeg_PDF格式转换工具
- POJ-1681 Painter's Problem 高消
- 密码加密模块 bcrypt (详细,好理解,示例源码)
- 【DFS笔记】对dfs(index,状态)一类问题的思考
- android6.0如何锁定程序,如何在Android中制作应用程序锁定应用程序?
- 已知任意三点坐标求圆心
- 信息学奥赛一本通 1197 山区建小学(区间DP)
- 【Android开发】考试系统
- HTML||从一个页面跳转至另一个html页面的子页面(超链接)
- hcs12 microcontroller 笔记
- excel工具栏隐藏了怎么办_你会用 Excel照相机吗?
- 从安格视,安维到安尼
热门文章
- C# RabbitMQ(一)介绍
- abp框架启动自动指向swagger界面
- Laravel的中间件
- Python下载(Windows)
- 贪吃蛇c语言判断没有输入,贪吃蛇问题
- RSA加密:javax.crypto.IllegalBlockSizeException: Data must not be longer than 117 bytes
- 全网首发:ScrollBarUI混淆后效果错误的分析
- 内存少导致编译出错,内存增加到24G
- 安装debian,服务器选择ftp2.cn
- python POST发送多个段(如json消息+文件)