MacPorts使用(04) 安装 PHP5.6

686 阅读4分钟

1.1. 安装php5.6

sudo port install php56

1.2. 安装php5.6相关扩展

1.2.1. FPM (FastCGI 进程管理器),5.3.3以后已经被绑定。

sudo port install php56-fpm 
php56-fpm has the following notes:
If this is your first install, you need to enable php56-fpm in your web
server.
To use php56-fpm, copy /opt/local/etc/php56/php-fpm.conf.default to
/opt/local/etc/php56/php-fpm.conf and make changes if desired.

A startup item has been generated that will aid in starting php56-fpm with
launchd. It is disabled by default. Execute the following command to start
it, and to cause it to launch at startup:
    
   sudo port load php56-fpm

1.2.2. PHP-calendar扩展(历法扩展集)

sudo port install php56-calendar

1.2.3. PHP-cURL库(Client URL库)

sudo port install php56-curl

1.2.4. PHP-dba扩展(BerkeleyDB库)

sudo port install php56-dba

1.2.5. PHP-enchant扩展(拼写库抽象层)

sudo port install php56-enchant

1.2.6. PHP-exif扩展(可交换图像信息)

sudo port install php56-exif

1.2.6. PHP-ftp扩展(FTP 协议访问文件服务器的客户端)

sudo port install php56-ftp

1.2.7. PHP-gd扩展(图像处理和GD)

sudo port install php56-gd

1.2.8. PHP-gettext扩展(PHP程序国际化)

sudo port install php56-gettext

1.2.9. PHP-gmp扩展(GMP开源数学运算库)

sudo port install php56-gmp

1.2.10. PHP-iconv扩展(iconv 字符集转换,支持各种字符集之间的转换)

sudo port install php56-iconv

1.2.11. PHP-imap扩展 (邮箱IMAP操作)

sudo port install php56-imap

1.2.12. PHP-intl扩展 (国际化Internationalization 扩展)

sudo port install php56-intl

1.2.13 PHP-ipc扩展

sudo port install php56-ipc

1.2.14 PHP-ldap扩展 (LDAP轻型目录访问协议: Lightweight Directory Access Protocol)

sudo port install php56-ldap

1.2.15 PHP-mbstring扩展 (多字节字符串处理函数)

sudo port install php56-mbstring

1.2.16 PHP-mcrypt扩展 (PHP多种块算法的支持)

sudo port install php56-mcrypt

1.2.17 PHP-mssql扩展(SQL Server 数据库扩展)

sudo port install php56-mssql

1.2.18 PHP-mysql扩展 (MySQL数据库扩展)

sudo port install php56-mysql

1.2.19 PHP-odbc扩展

sudo port install php56-odbc

1.2.20 PHP-opcache扩展

OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。
PHP 5.5.0 及后续版本中已经绑定了 OPcache 扩展。 对于 PHP 5.2,5.3 和 5.4 版本可以使用 » PECL 扩展中的 OPcache 库。

sudo port install php56-opcache

1.2.21 PHP-openssl扩展

sudo port install php56-openssl

1.2.22 PHP-pcntl扩展 (PHP进程控制 Process Control support in PHP)

sudo port install php56-pcntl

1.2.23. PHP-posix扩展

sudo port install php56-posix

1.2.24. PHP-postgresql扩展

sudo port install php56-postgresql

1.2.25 PHP-pspell扩展 (拼写检查)

sudo port install php56-pspell

1.2.26. PHP-snmp扩展

sudo port install php56-snmp

1.2.27 PHP-soap扩展

sudo port install php56-soap

1.2.28 PHP-sockets扩展

sudo port install php56-sockets

1.2.29 PHP-sqlite扩展

sudo port install php56-sqlite

1.2.30. PHP-tidy扩展 HTML优化库

sudo port install php56-tidy

1.2.31. PHP-wddx扩展 (7.4.4已弃用)

WDDX 是一项允许在保持数据完整性的前提下在系统格式中立的系统间交换数据和数据结构的XML技术。它定义了用来传送数据的XML结构,但它没有定义数据传输的机制;因此,WDDX本身不能被认为是一种web服务但却可以用来建立web服务,确切地说,你可以使用包括(并不限制于)HTTP,FTP,SMTP和 POP的任何一种传输类型。一般来说,你可以使用任何一种支持传输文本数据的协议。

sudo port install php56-wddx

1.2.32. PHP-xmlrpc扩展

sudo port install php56-xmlrpc

1.2.33. PHP-xsl扩展

sudo port install php56-xsl

1.2.34. PHP-zip扩展

sudo port install php56-zip

1.2.35. PHP-redis扩展

sudo port install php56-redis
php56-mysql has the following notes:
    To use mysqlnd with a local MySQL server, edit /opt/local/etc/php56/php.ini
    and set mysql.default_socket, mysqli.default_socket and
    pdo_mysql.default_socket to the path to your MySQL server's socket file.
    
    For mysql5, use /opt/local/var/run/mysql5/mysqld.sock
    For mysql51, use /opt/local/var/run/mysql51/mysqld.sock
    For mysql55, use /opt/local/var/run/mysql55/mysqld.sock
    For mysql56, use /opt/local/var/run/mysql56/mysqld.sock
    For mariadb, use /opt/local/var/run/mariadb/mysqld.sock
    For percona, use /opt/local/var/run/percona/mysqld.sock

2. 切换到PHP5.6版本

sudo port select --set php php56
sudo cp /opt/local/etc/php56/php.ini-development /opt/local/etc/php56/php.ini

Create the following PHP56-FPM config file: /opt/local/etc/php56/php-fpm.conf


error_log = log/php56/php-fpm.log
syslog.ident = php56-fpm
daemonize = no

[www]

user = nobody
group = nobody

listen = /var/run/php5-fpm.sock
listen.owner = nobody
listen.group = nobody
listen.mode = 0660

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
slowlog = log/$pool.log.slow
catch_workers_output = yes

php_flag[display_errors] = on
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 64M

sudo port load php56-fpm

PHP FPM will be accessible via: /var/run/php5-fpm.sock

Sample Nginx config:

server {
    listen       80;
    index index.php index.html;
    root /www;
    location / {
        # try to serve file directly, fallback to app.php
        try_files $uri /app.php$is_args$args;
    }
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
    }
}