`
AnhuiOSS技术分享
  • 浏览: 34176 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Nginx + PHP + PostgreSQL 源代码编译安装

阅读更多

源码包下载:

1、php(版本:5.4.8)下载地址:http://cn2.php.net/get/php-5.4.8.tar.bz2/from/this/mirror

2、Nginx(版本:nginx-1.3.8)下载地址:http://nginx.org/download/nginx-1.3.8.tar.gz

 

3、eAccelerator下载地址:http://eaccelerator.net/

4、ImageMagick(版本:6.8.0-4)下载地址:ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/ImageMagick-6.8.0-4.tar.bz2

5、imagick(版本:3.0.1)下载地址:http://pecl.php.net/get/imagick-3.0.1.tgz

6、libconv(版本:1.14)下载地址:http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

7、libmcrypt(版本:)下载地址:ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz

8、mcrypt(版本:2.6.8)下载地址:http://downloads.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fmcrypt%2F&ts=1353402942&use_mirror=nchc

9、memcached(版本:1.4.15)下载地址:http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz

10、pcre(版本:8.31)下载地址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.31.tar.bz2

11、mhash(版本:0.9.9.9)下载地址:http://sourceforge.net/projects/mhash/files/latest/download?source=files

 

二、安装编译包

 yum install gcc glibc make

三、解压包并开始安装

 1、解压libiconv-1.14.tar.gz 

      tar xvzf libiconv-1.14.tar.gz 

      cd libiconv-1.14

       ./configure --prefix=/usr/local && make && make install

  2、解压libmcrypt-2.5.7.tar.gz

    tar xvzf libmcrypt-2.5.7.tar.gz

    cd libmcrypt-2.5.7

        ./configure && make && make install

       /sbin/ldconfig

       cd libltdl/

       ./configure --enable-ltdl-install

make && make install

  3、解压mhash-0.9.9.9.tar.bz2

   tar xvjf mhash-0.9.9.9.tar.bz2

     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.7 /usr/lib/libmcrypt.so.4.4.7

    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

     /sbin/ldconfig

 4、解压mcrypt-2.6.8.tar.gz

    tar xvzf mcrypt-2.6.8.tar.gz

    cd mcrypt-2.6.8

     ./configure && make && make install

5、安装数据库(通过yum来安装)

  yum install postgresql-server postgresql postgresql-devel postgresql-libs

6、安装如下包

   yum install libjpeg libpng libjpeg-devel libpng-devel

  yum install libxml2-devel openssl-devel libcurl-devel freetype freetype-devel openldap-devel

   cp -frp /usr/lib64/libldap* /usr/lib/

7、   安装php-5.4.8

   ./configure --prefix=/usr/local/php-5.4.8/ --with-config-file-path=/usr/local/php-5.4.8/etc --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-bmath --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 --without-pear

   make ZEND_EXTRA_LIBS='-liconv'

  make install

#创建php.ini

  cp php.ini-production /usr/local/php-5.4.8/etc/php.ini

#测试php  

 curl http://pear.php.net/go-pear |/usr/local/php-5.4.8/bin/php

 执行/usr/local/php-5.4.8/bin/phpize,出现如下错误 

Cannot find config.m4.

[root@AY1211191025228124935 memcached-1.4.15]# /usr/local/php-5.4.8/bin/phpize 

Cannot find config.m4. 

Make sure that you run '/usr/local/php-5.4.8/bin/phpize' in the top level source directory of the module

 

 

在/usr/local/src/soft/php-5.4.8/ext下找到这个工具

 

  来建立一个php扩展的一个框架

 

  [root@AY1211191025228124935 src]]#cd /usr/local/src/soft/php-5.4.8/ext

 

  [root@AY1211191025228124935 ext]# ./ext_skel --extname=sdomain

Creating directory sdomain

Creating basic files: config.m4 config.w32 .svnignore sdomain.c php_sdomain.h CREDITS EXPERIMENTAL tests/001.phpt sdomain.php [done].

 

To use your new extension, you will have to execute the following steps:

 

1.  $ cd ..

2.  $ vi ext/sdomain/config.m4

3.  $ ./buildconf

4.  $ ./configure --[with|enable]-sdomain

5.  $ make

6.  $ ./php -f ext/sdomain/sdomain.php

7.  $ vi ext/sdomain/sdomain.c

8.  $ make

 

Repeat steps 3-6 until you are satisfied with ext/sdomain/config.m4 and

step 6 confirms that your module is compiled into PHP. Then, start writing

code and repeat the last two steps as often as necessary.

[root@AY1211191025228124935 ext]# cd sdomain/

 

  [root@AY1211191025228124935 sdomain]# ls

 

  config.m4   CREDITS       php_sdomain.h  sdomain.php

config.w32  EXPERIMENTAL  sdomain.c      tests

 

  然后我们要修改文件顺序是

 

  configue.m4

 

  sdomain.c

 

  php_sdomain.h

使用文本编辑器打开config.m4文件,修改文件内容:

 

dnl PHP_ARG_WITH(my_module, for my_module support,

 

  dnl Make sure that the comment is aligned:

 

  dnl [ --with-my_module       Include my_module support])

 

修改成

 

  PHP_ARG_WITH(my_module, for my_module support,

 

  [ --with-my_module       Include my_module support])

 

  或者将

 

        (其实就是将这部分的dnl去掉,在这个文件里dnl就是注释的意思,相当于我们PHP里面的#或// 另外把他中间的一句描术也去掉)

 

然后保存退出

 

  然后在编辑

 

  Vi sdomain.c

 

  将文件其中的下列代码进行修改

 

/* Every user visible function must have an entry in my_module_functions[].

*/

function_entry my_module_functions[] = {

    PHP_FE(say_hello,    NULL) /* ?添加着一行代码 */

    PHP_FE(confirm_my_module_compiled,   NULL) /* For testing, remove later. */

    {NULL, NULL, NULL}   /* Must be the last line in my_module_functions[] */

};

 

  在文件的最后添加下列代码

 

PHP_FUNCTION(say_hello)

{

    zend_printf("hello sdomain!");

}

 

 

 

再修改:php_sdomain.h

 

vi php_sdomain.h

 

在PHP_FUNCTION(confirm_my_module_compiled); /* For testing, remove later. */ 这行的下面添加一行:

 

PHP_FUNCTION(say_hello); /* For testing, remove later. */

 

  保存文件退出

 

  然后我们就可以在这个目录下使用上面的命令了

 

 /usr/local/php-5.4.8/bin/phpize 

 

8、解压memcached-1.4.15.tar.gz

  tar xvzf memcached-1.4.15.tar.gz

  cd memcached-1.4.15

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

  checking for libevent directory... configure: error: libevent is required.  You can get it from http://www.monkey.org/~provos/libevent/

  执行:yum install libevent-devel libevent

  再次执行

   ./configure --with-php-config=/usr/local/php-5.4.8/bin/php-config&& make && make install

 

9、解压cd eaccelerator-eaccelerator-42067ac.tar.gz

  tar xvzf eaccelerator-eaccelerator-42067ac.tar.gz

   cd eaccelerator-eaccelerator-42067ac

   /usr/local/php-5.4.8/bin/phpize

    ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php-5.4.8/bin/php-config 

     make && make install

 

10、解压ImageMagick-6.8.0-4.tar.bz2

   tar xvjf ImageMagick-6.8.0-4.tar.bz2

     cd ImageMagick-6.8.0-4

      ./configure && make && make install

11、解压imagick-3.0.1.tgz

      yum install ImageMagick-devel

      tar xvzf imagick-3.0.1.tgz

      cd imagick-3.0.1

       /usr/local/php-5.4.8/bin/phpize 

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

       make && make install

 

12、将在/usr/local/php-5.4.8/etc/php.ini中的extension_dir="./"修改为extension_dir = “extension_dir=/usr/local/php-5.4.8/lib/php/extensions/no-debug-non-zts-20100525"

     将在此后加入

     extension = "memcache.so"

     extension = "imagick.so"

      配置eAccelerator加速PHP

     mkdir /usr/local/eaccelerator_cache

    编辑 vim /usr/local/php-5.4.8/etc/php.ini 

  在最后输入如下内容:

[eaccelerator]

zend_extension="/usr/local/php-5.4.8/lib/php/extensions/no-debug-non-zts-20100525"

eaccelerator.shm_size="128"

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"

 

13、vi /etc/profile

      在最后增加如下:

    export PATH=$PATH:/usr/local/php-5.4.8/bin/:/usr/local/php-5.4.8/sbin

   保存退出,并输入source /etc/profile

 

14、解压并编译nginx-1.3.8.tar.gz

      tar xvzf nginx-1.3.8.tar.gz

       cd nginx-1.3.8

       yum install pcre-devel

     ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module 

      make && make install

安装nginx完成

    vim /etc/rc.local,加入如下内容:

    ulimit -SHn 65535

/usr/local/php-5.4.8/sbin/php-fpm

/usr/local/nginx/sbin/nginx

 

 

    vi /etc/profile

      在最后增加如下:

    export PATH=$PATH:/usr/local/php-5.4.8/bin/:/usr/local/php-5.4.8/sbin:/usr/local/nginx/sbin/nginx

       最后保存退出后执行source /etc/profile

 

 

15、优化内核参数

  vi /etc/sysctl.conf

   在此文件的最后加入如下内容

  net.ipv4.neigh.default.gc_stale_time=120

net.ipv4.tcp_max_syn_backlog = 65536

net.core.netdev_max_backlog = 32768

net.core.somaxconn = 32768

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_synack_retries = 2

net.ipv4.tcp_syn_retries = 2

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_reuse =1

net.ipv4.tcp_mem =9450000 915000000 927000000

net.ipv4.tcp_max_orphans = 3276800

net.ipv4.ip_local_port_range = 1024 65535

保存并退出,执行sysctl -p,使之生效

分享到:
评论

相关推荐

    基于Linux Centos 7.0+系统编写Nginx-1.23.1一键安装的shell脚本,离线安装板

    为避免您下载了不是您想要的安装包,请先到这个地址:...为了解放双手,遂编写了这个nginx服务编译、安装脚本文件,顺便分享出来,写的不好的地方还望理解,如有技术和创新较好的思想,望留言相互学习。

    packer-php7-dev:用于 PHP7 开发的 CentOS 7 Packer Vagrant Build

    从 master 分支克隆最新的 PHP 源代码库从源代码构建 PHP 并启用调试信息和 gcov 构建运行常见 PHP 框架/应用程序所需的扩展(composer/Symfony2) 使用 opcache 将编译后的 PHP 二进制文件安装为 SAPI FPM 安装...

    阿里云ossjava源码-oneops:oneops

    源码编译安装,最稳定的源码是最新版本,官网下载 一些安全优化 提供多个数据库版本(MySQL-8.0、MySQL-5.7、MySQL-5.6、MySQL-5.5、MariaDB-10.3、MariaDB-10.2、MariaDB-10.1、MariaDB-5.5、Percona-8.0、Percona-...

    阿里云ossjava源码-lamp:CentOS/RedhatDebian和Ubuntu的LAMP堆栈安装脚本

    源码编译安装,最稳定的源码是最新版本,官网下载 一些安全优化 提供多个数据库版本(MySQL-8.0、MySQL-5.7、MySQL-5.6、MySQL-5.5、MariaDB-10.3、MariaDB-10.2、MariaDB-10.1、MariaDB-5.5、Percona-8.0、Percona-...

    阿里云ossjava源码-lempstack:CentOS/RedhatDebian和Ubuntu的LEMP堆栈安装脚本

    源码编译安装,最稳定的源码是最新版本,官网下载 一些安全优化 提供多个数据库版本(MySQL-8.0、MySQL-5.7、MySQL-5.6、MySQL-5.5、MariaDB-10.3、MariaDB-10.2、MariaDB-10.1、MariaDB-5.5、Percona-8.0、Percona-...

    阿里云ossjava源码-lamp:灯

    源码编译安装,最稳定的源码是最新版本,官网下载 一些安全优化 提供多个数据库版本(MySQL-8.0、MySQL-5.7、MySQL-5.6、MySQL-5.5、MariaDB-10.3、MariaDB-10.2、MariaDB-10.1、MariaDB-10.0、MariaDB-5.5、Percona...

    阿里云ossjava源码-need:转载大神的LNMP

    源码编译安装,最稳定的源码是最新版本,官网下载 一些安全优化 提供多个数据库版本(MySQL-8.0、MySQL-5.7、MySQL-5.6、MySQL-5.5、MariaDB-10.3、MariaDB-10.2、MariaDB-10.1、MariaDB-5.5、Percona-8.0、Percona-...

    阿里云ossjava源码-onestack:onestack包括web常用软件的部署包括数据库等

    源码编译安装,最稳定的源码是最新版本,官网下载 一些安全优化 提供多个数据库版本(MySQL-8.0、MySQL-5.7、MySQL-5.6、MySQL-5.5、MariaDB-10.3、MariaDB-10.2、MariaDB-10.1、MariaDB-10.0、MariaDB-5.5、Percona...

    danbooru:用Rails 6编写的可标记图像板

    这将简化安装初始化脚本的过程,当从源代码进行编译时,这种情况并非总是会发生。故障排除这些说明并不适用于所有人。 如果您的设置不起作用,请按照以下通常推荐给我的步骤进行操作: 测试数据库。 确保可以使用...

    phalcon-vm:针对PHP7,Phalcon 3.x和Zephir开发的流浪汉配置

    Phalcon VM是一个开放源代码的配置,其中包含现代Web开发中所需的各种工具。 像瑞士军刀一样,Phalcon VM使您可以轻松激活和使用项目所需的工具。 该项目的主要目标是为使用PHP7和Phalcon 3.x框架编写的项目提供...

    精通Odoo开发和使用

    3.7 文档编译 14 4 初入 Odoo 17 4.1 管理数据库 17 4.2 登录界面 18 4.3 Administrator 首选项 19 4.4 导入一个翻译 20 4.5 新的 Demo 用户 20 4.6 模块管理 21 4.7 修改公司信息 21 4.8 打开技术特性支持之后 22 ...

Global site tag (gtag.js) - Google Analytics