热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ubuntu14.04编译安装Tengine+PHP5.6

引子本篇从头开始讲解Ubuntu下编译安装Tengine和PHP确保已经安装编译器!apt-getinstallbuild-essential-y懒人专用apt-geti

引子

本篇从头开始讲解Ubuntu下编译安装 Tengine 和 PHP

确保已经安装编译器!

apt-get install build-essential -y

懒人专用

apt-get install gcc make build-essential libxml2 libxml2-dev openssl bzip2 libbz2-dev curl libpng12-dev libmcrypt-dev -y
apt-get install libcurl4-gnutls-dev -y
apt-get install libcurl4-openssl-dev -y

wget "http://tengine.taobao.org/download/tengine-2.1.2.tar.gz" "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz" "http://cn2.php.net/distributions/php-5.6.23.tar.gz"

for tar in *.tar.gz; do tar -zxvf $tar; done

编译 Tengine

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
http://tengine.taobao.org/download/tengine-2.1.2.tar.gz

# 安装依赖
apt-get install openssl libssl-dev -y

# 编译
./configure --with-pcre=/path/to/pcre-8.39
make && make install

编译 PHP

http://cn2.php.net/distributions/php-5.6.23.tar.gz

# 安装依赖
apt-get install libxml2 libxml2-dev bzip2 libbz2-dev curl libpng12-dev libmcrypt-dev -y
apt-get install libcurl4-gnutls-dev -y
apt-get install libcurl4-openssl-dev -y

# 编译
./configure --prefix=/usr/local/php --enable-fpm --with-config-file-path=/usr/local/php/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gettext --enable-mbstring --enable-exif --with-iconv --with-mcrypt --with-mhash --with-openssl --enable-bcmath --enable-soap --with-libxml-dir --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-gd --with-zlib --enable-zip --with-bz2 --without-sqlite3 --without-pdo-sqlite --with-pear --enable-opcache --with-fpm-group=www-data --with-fpm-user=www-data

make && make install

安装完毕之后, 开始配置

# 配置php-fpm
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

# 整合nginx+php
vim nginx.conf

location / {
root /var/www/html;
index index.html index.php;
}

location ~ \.php$ {
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $DOCUMENT_ROOT$fastcgi_script_name;
include fastcgi_params;
}

MySQL 相关

使用apt-get install mysql-server 之后, 发觉mysql_connect()这类函数会报错, 提示

mysql_connect(): [2002] No such file or directory

这是表示没有找到mysql.sock文件, 只需去mysql的my.cnf中找一下真实路径, 然后做一下软连接即可, 也可能是mysqld.sock.

ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock

这个是4.6版本, 仅支持5.5以及以上的 mysql :
https://files.phpmyadmin.net/phpMyAdmin/4.6.3/phpMyAdmin-4.6.3-all-languages.tar.gz

另外, 如果使用 apt-get 安装的 mysql5.6, 则需要确定机器内存大于 2GB
或者使用 swap, 否则会安装失败

On Ubuntu 14.04, I do the following to solve the problem:

Create a 4G swap file:
sudo fallocate -l 4G /swapfile

Change its permission to only root could access and change:
sudo chmod 600 /swapfile

Make it swap:
sudo mkswap /swapfile

Activate:
sudo swapon /swapfile

Now you can try install mysql again, it should success this time. Just remember to remove the previous unsuccessful installation before you do so.

OPcache

需要如下配置才能启用 OPcache :

vim php.ini

zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/opcache.so

opcache.enable=1
opcache.memory_cOnsumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=5000
opcache.revalidate_freq=60
opcache.fast_shutdown=1

整合ThinkPHP
vim nginx.conf

location / {
root /var/www/html;
index index.html index.php;
# ThinkPHP hide index.php
try_files $uri $uri/ /index.php?s=$uri&$args;
}

location ~ \.php {
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}

参考资料

http://www.yanshiba.com/archives/727
http://php.net/manual/zh/opcache.installation.php
http://www.th7.cn/system/lin/201410/74518.shtml
http://havee.me/internet/2014-04/nginx-gzip-compression.html
http://blog.csdn.net/tinico/article/details/18033573
http://www.jb51.net/article/82276.htm
http://askubuntu.com/questions/457923/why-did-installation-of-mysql-5-6-on-ubuntu-14-04-fail


推荐阅读
  • 这篇文章主要讲解了“AliyunLinux如何安装php7.3tengine2.3.2mysql8.0redis5”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着 ... [详细]
  • Python作为一种广泛使用的高级编程语言,以其简洁的语法、强大的功能和丰富的库支持著称。本文将详细介绍Python的主要特点及其在现代软件开发中的应用。 ... [详细]
  • OpenWrt 是一款高度可定制的嵌入式 Linux 发行版,广泛应用于无线路由器等领域,拥有超过百个预装软件包。本文详细探讨如何在 OpenWrt 上通过 Luci 构建自定义模块,以扩展其功能。 ... [详细]
  • 本文详细介绍了RPM包构建过程中Spec文件的结构和各部分的作用,包括包描述、准备阶段、构建过程、安装步骤、清理操作以及文件列表等关键环节。同时,提供了关于RPM宏命令、打包目录结构及常见标签的深入解析。 ... [详细]
  • Windows 平台 Ruby on Rails 安装指南
    本文详细介绍如何在 Windows 系统上安装 Ruby 及其开发框架 Rails,包括必要的环境配置和组件安装。 ... [详细]
  • 本文详细记录了《PHP与MySQL Web开发》第一章的学习心得,特别关注了PHP的基本构成元素、标记风格、编程注意事项及表单处理技巧等内容。 ... [详细]
  • 本文介绍了一个使用Keras框架构建的卷积神经网络(CNN)实例,主要利用了Keras提供的MNIST数据集以及相关的层,如Dense、Dropout、Activation等,构建了一个具有两层卷积和两层全连接层的CNN模型。 ... [详细]
  • 本文介绍了如何在 Linux 系统上构建网络路由器,特别关注于使用 Zebra 软件实现动态路由功能。通过具体的案例,展示了如何配置 RIP 和 OSPF 协议,以及如何利用多路由器查看工具(MRLG)监控网络状态。 ... [详细]
  • 本文详细介绍了C++标准模板库(STL)中各容器的功能特性,并深入探讨了不同容器操作函数的异常安全性。 ... [详细]
  • 本文深入探讨了企业级开发框架NHibernate和Spring.NET的关键特性之一——面向方面编程(AOP)。文章不仅介绍了AOP的基本概念及其如何增强面向对象编程(OOP),还详细说明了Spring.NET中AOP的具体应用,包括事务管理和自定义方面的实现。 ... [详细]
  • ipvsadm命令简介:ipvsadm是LVS在应用层的管理命令,我们可以通过这个命令去管理LVS的配置。在fedora14、Linux6.0之后系统中 ... [详细]
  • 手把手教你构建简易JSON解析器
    本文将带你深入了解JSON解析器的构建过程,通过实践掌握JSON解析的基本原理。适合所有对数据解析感兴趣的开发者。 ... [详细]
  • 本文介绍如何利用C语言在Linux操作系统中实现递归创建多级目录的功能,包括必要的头文件引入和函数实现。 ... [详细]
  • 本文主要从TLS1.3的优势、部署和时间发展线介绍了这上篇文章回顾:浅谈DHCP协议 ... [详细]
  • 我们知道CDN护航了双11十年,却不知道背后有那么多故事
    2019独角兽企业重金招聘Python工程师标准摘要:一路走来,文景也曾疑惑过:为什么我们不能把活动的时间跨度拉长到3天࿰ ... [详细]
author-avatar
其穗茹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有