ubuntu下源码方式安装php5.4
一、安装前准备
下载php-5.4.13.tar.gz最新版本放到/user/src目录下
二、安装
因为在安装php过程中,会依赖安装很多库,为了不让你反复安装,建议按步骤操作
安装autoconf工具
sudo apt-get install autoconf
安装libxml2库
sudo apt-get install libxml2-dev
安装libbz2-dev
sudo apt-get install libbz2-dev
安装curl
sudo apt-get install libcurl4-gnutls-dev
安装jpeglib
sudo apt-get install libjpeg-dev
安装png
sudo apt-get install libpng-dev
安装libxpm-dev
sudo apt-get install libxpm-dev
安装freetype
sudo apt-get install libfreetype6-dev
安装libt1
sudo apt-get install libt1-dev
安装mcrypt
sudo apt-get install libmcrypt-dev
安装xslt
sudo apt-get install libxslt1-dev 按照上面的步骤安装将会为您节省至少20分钟的时间,甚至更多;如果还有错误,则根据提示安装库
最后执行安装命令,当前在解压好的php原文件包/usr/src/php-5.4.13目录
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-curl --with-pear --with-gd --with-jpeg-dir --with-png-dir --with-zlib --with-xpm-dir --with-freetype-dir --with-t1lib --with-mcrypt --with-mhash --with-mysql --with-mysqli --enable-pdo --with-pdo-mysql --with-openssl --with-xmlrpc --with-xsl --with-gettext --with-fpm-user=www-data --with-fpm-group=www-data --enable-fpm --enable-exif --enable-wddx --enable-zip --enable-bcmath -with-bz2 --enable-calendar --enable-ftp --enable-mbstring --enable-soap --enable-sockets --enable-shmop --enable-dba --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-debug --enable-maintainer-zts --enable-embed
make && make install
如果出现安装 openssl/evp.h:没有那个文件或目录 错误
使用sudo apt-cache search openssl
经过查找libcurl4-openssl-dev 出现这个包
sudo apt-get install libcurl4-openssl-dev
安装这个
configure: error: libXpm.(a|so) not found.
可是这个依赖已经安装了,于是赶紧google,发现说类库文件找不到,但是网上的文章中都是说只要安装了依赖就能执行,可是我却还是报这个错误,直到搜到这个http://community.itbbs.cn/thread/21506,上面说在/usr/lib/x86_64-linux-gnu/这个目录下,赶紧看了下,果然在,创建了软链接,
1 sudo ln -s /usr/lib/x86_64-linux-gnu/libXpm.so /usr/lib/
2 sudo ln -s /usr/lib/x86_64-linux-gnu/libXpm.so.4 /usr/lib/
3 sudo ln -s /usr/lib/x86_64-linux-gnu/libXpm.so.4.11.0 /usr/lib/
再次执行./configure就能通过了.
安装成功!!
三、配置php
将php安装目录加到PATH中
echo 'if [ -d "/usr/local/php/bin" ] && [ -d "/usr/local/php/sbin" ]; then PATH="$PATH:/usr/local/php/bin:/usr/local/php/sbin"fi' >> /etc/bash.bashrc
当前会员也加到PATH中
export PATH="$PATH:/usr/local/php/bin:/usr/local/php/sbin"
准备php的日志文件目录
mkdir /var/log/php-fpm
chown -R www:www /var/log/php-fpm
准备php的配置文件
cd /usr/src/php-5.4.13
cp -f php.ini-production /usr/local/php/etc/php.ini
chmod 644 /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
注意: PHP的配置文件在/usr/local/php/etc/php.ini,
php-fpm的配置文件在/usr/local/php/etc/php-fpm.conf.
设置php-fpm启动管理文件,并让PHP在ubuntu启动时自动运行
cp -f sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
update-rc.d -f php-fpm defaults
设置PHP的自动日志分割和压缩: vi /etc/logrotate.d/php-fpm
加入下面的内容保存退出:
/var/log/php-fpm/*.log {  weekly  missingok  rotate 52  compress  delaycompress  notifempty  create 640 www-data www-data  sharedscripts  postrotate   [ ! -f /opt/php5/var/run/php-fpm.pid ] || kill -USR1 `cat /opt/php5/ /var/run/php-fpm.pid`  endscript }  
四、配置php-fpm和nginx
打开php-fpm配置文件
vi /usr/local/php/etc/php-fpm.conf
下面的参数需要改下
pid = run/php-fpm.pid //这个必去将前面的;注释去掉(一开始没去掉结果出502错误)
 error_log = log/php-fpm.log
 log_level = notice
 ;emergency_restart_threshold = 0
 ;emergency_restart_interval = 0
 ;process_control_timeout = 0
 ;daemonize = yes
 [www]
 ;prefix = /path/to/pools/$pool
 listen = 127.0.0.1:9000
 ; listen.backlog = -1
 listen.allowed_clients = 127.0.0.1
 listen.owner = www
 listen.group = www
 listen.mode = 0666
 user = www
 group = www
 pm = dynamic
 pm.max_children = 50
 pm.start_servers = 20
 pm.min_spare_servers = 5
 pm.max_spare_servers = 35
 pm.max_requests = 500
然后配置nginx
vi /usr/local/nginx/conf/nginx.conf
内容如下
user www;
worker_processes 2;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events 
{
 use epoll;
 worker_connections 1024;
}
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 300s;
 fastcgi_send_timeout 300s;
 fastcgi_read_timeout 300s;
 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 localhost; #/*服务器名称*/
 index index.html index.htm index.php; #/*缺省主页名称*/
 root /var/www; #/*网站根目录,也可以采用下面内容*/
#也可以采用相对路径,下面注释部分*/
 #location / {
 # root html;
 # index index.html index.htm;
 # }
#limit_conn crawler 20;
#通过FastCGI方式支持PHP,php页面由fastcgi代理处理,这也是反向代理的一个应用,这里可以是jsp/asp等脚本。
 location ~ .*\.(php|php5)?$
 { 
 include /etc/nginx/fastcgi_params;#为FastCGI模块设置了基本的环境变量
 fastcgi_pass 127.0.0.1:9000;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
 #include fcgi.conf; #/*fastcgi配置文件,修改为以下内容*/
 }
#对于某一类型的文件,设置过期时间,静态的页面通常设置长一点。
 #静态文件,nginx自己处理
 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$
 {
 expires 30d;
 }
#日志的格式
 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/nginx/access.log access;
 }
}
保存退出,重启fpm和nginx
/etc/init.d/php-fpm restart
/etc/init.d/nginx restart
ubuntu下源码方式安装php5.4的更多相关文章
- centos7下源码方式安装gitlab8.9+发送邮件+ldap
		CentOS7下源码方式安装gitlab 环境描述 操作系统: centos7 redis: >=2.8 mysql >=5.5.14 git >=2.7.4 架构设计 一台gitl ... 
- Centos6 系统下源码方式安装Mysql 记录
		在运维工作中经常部署各种运维环境,涉及mysql数据库的安装也是时常需要的.mysql数据库安装可以选择yum在线安装,但是这种安装的mysql一般是系统自带的,版本方面可能跟需求不太匹配. #### ... 
- CentOS 6.6 下源码编译安装MySQL 5.7.5
		版权声明:转自:http://www.linuxidc.com/Linux/2015-08/121667.htm 说明:CentOS 6.6 下源码编译安装MySQL 5.7.5 1. 安装相关工具# ... 
- inux centos7下源码 tar安装5.7.26详解
		inux centos7下源码 tar安装5.7.26图文详解 官网地址 https://dev.mysql.com/downloads/mysql/ 1.卸载Linux系统上自带的mysql插件(o ... 
- 源码方式安装 lrzsz 库
		我们都知道安装了lrzsz工具的linux系统环境: 在shell里可以非常方便的上传和下载linux里面的文件: 通常的安装方式: yum install lrzsz sudo apt-get in ... 
- 源码方式安装 lrzsz库
		源码方式安装 lrzsz库:https://www.cnblogs.com/cocoajin/p/11731787.html 我们都知道安装了lrzsz工具的linux系统环境,在shell里可以非常 ... 
- Linux上生产环境源码方式安装配置postgresql12
		1.Linux上源码方式安装postgresql12 01.准备操作系统环境 echo "192.168.1.61 tsepg61" >> /etc/hosts mou ... 
- BIND简易教程(0):在Ubuntu下源码安装BIND(其实跟前面的教程没太大关系)
		之前介绍过BIND的基本使用啦.关于BIND的入门级使用方法见:http://www.cnblogs.com/anpengapple/p/5877661.html简易教程系列,本篇只讲BIND安装. ... 
- Linux 下源码编译安装 vim 8.1
		前言 目前 linux 的各个发行版基本上都是带了一个 vi 编辑器的,而本文要说的 vim 编辑器对 vi 做了一些优化升级,更好用.当我们需要远程操作一台 linux 服务器的时候,只能使用命令行 ... 
随机推荐
- Discuz代码研究-编码规范
			Discuz中的编码规范很值得PHP开发人员借鉴.里面既介绍了编码时代码标记,注释,书写规则,命名原则等方面基础的内容,对代码的安全性,性能,兼容性,代码重用,数据库设计,数据库性能及优化作了阐述,这 ... 
- asp.net mvc获得请求体所有内容
			代码如下 Stream req = Request.InputStream; req.Seek(0, System.IO.SeekOrigin.Begin); string json = new St ... 
- GitLab non-standard SSH port
			/***************************************************************************** * GitLab non-standard ... 
- (二十八)static关键字
			/* * static 静态的 * static修饰的成员变量的特点 * 1.static修饰的成员变量是该类的所有对象共享 * 2.static修饰的成员变量是随着类的加载就 ... 
- 剑指offer-第四章解决面试题思路(判断一个数组是否为二叉搜索树的后序遍历序列)
			二叉搜索树:二叉搜索树根节点的左边都比根节点小,右边都比根节点大. 例题:输入一个数组,判断是否为二叉搜索树的后序遍历序列,如果是,返回true,如果不是,返回flase,假设没有重复的元素. 思路: ... 
- 初识用.NET Remoting来开发分布式应用
			一..NET Remoting简介: .NET Remoting从某种意义上讲是DCOM的替代品.ASP.NET Web服务十分有用,但是这项技术在企业内联网的解决方案中,对于某些业务请求来说并不快, ... 
- lbypmall系统备份恢复
			打开phpmyadmin 1.数据库创建,在服务器上创建lbypmall数据库,排序规则utf8_general_ci 2.mysqldump -u root -p lbypmall > lby ... 
- bzoj 4671 异或图——容斥+斯特林反演+线性基
			题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4671 考虑计算不是连通图的方案,乘上容斥系数来进行容斥. 可以枚举子集划分(复杂度是O(Be ... 
- Java文件压缩优化工具(ProGuard) 软件介绍 Soft content
			ProGuard是一款免费的Java类文件的压缩.优化.混肴器.它可以帮你删除没用的类,字段,方法与属性,使字节码最大程度地优化,使用简短且无意义的名字来重命名类.字段和方法 .目前eclipse已经 ... 
- 使用ajax提交form表单,formData
			http://www.cnblogs.com/zhuxiaojie/p/4783939.html formDatahttps://developer.mozilla.org/zh-CN/docs/We ... 
