FreeBSD安裝配置Nginx+PHP+APC+MySQL

周海棠啦發表於2017-07-17

在 FreeBSD 下安裝軟體的傳統方法是用 ports 原始碼安裝,不過使用 ports 原始碼編譯安裝太耗時(尤其是各種庫依賴多、大的時候),個人還是喜歡 pkg 這種軟體包管理工具直接安裝編譯好的二進位制軟體包,不用自己編譯,省時省力。


FreeBSD 也能一行命令解決所有安裝和軟體包依賴問題

# pkg install nginx php55 php55-extensions pecl-APC mysql56-server
Updating repository catalogue
The following 23 packages will be installed:

    Installing nginx: 1.4.7,1
    Installing php5-session: 5.4.26
    Installing php5-xmlwriter: 5.4.26
    Installing php5-dom: 5.4.26
    Installing php5-xml: 5.4.26
    Installing php5-simplexml: 5.4.26
    Installing php5-ctype: 5.4.26
    Installing php5-posix: 5.4.26
    Installing php5-hash: 5.4.26
    Installing php5-filter: 5.4.26
    Installing php5-tokenizer: 5.4.26
    Installing php5-json: 5.4.26
    Installing php5-sqlite3: 5.4.26
    Installing php5-pdo: 5.4.26
    Installing php5-iconv: 5.4.26
    Installing php5-phar: 5.4.26
    Installing pecl-APC: 3.1.14_1
    Installing php5-xmlreader: 5.4.26
    Installing php5-pdo_sqlite: 5.4.26
    Installing php5-extensions: 1.7
    Installing mysql56-client: 5.6.16_1
    Installing mysql56-server: 5.6.16

The installation will require 149 MB more space
14 MB to be downloaded
Proceed with installing packages [y/N]: y

安裝完後把服務加到系統啟動檔案裡:

# vi /etc/rc.conf
...
nginx_enable="YES"
php_fpm_enable="YES"
mysql_enable="YES"

配置Mysql:

# vi /usr/local/etc/my.cnf
[mysqld]
socket = /tmp/mysql.sock

skip-networking
skip-name-resolve

# service mysql-server start
# /usr/local/bin/mysqladmin -u root password `password`

配置 PHP 和 PHP-FPM,這裡不需要配啥,預設的配置就行:

# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
# vi /usr/local/etc/php.ini
# vi /usr/local/etc/php-fpm.conf
# service php-fpm start

配置 APC:

# echo `apc.enabled="1"` >> /usr/local/etc/php.ini
# echo `apc.shm_size="32M"` >> /usr/local/etc/php.ini
# service php-fpm restart

配置 Nginx:

# vi /usr/local/etc/nginx/nginx.conf
user  www;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /usr/local/www/nginx;
            index  index.html index.htm;
        }

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/local/www/nginx-dist;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ .php$ {
            root   /usr/local/www/nginx;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}

# service nginx start

寫個 phpinfo() 頁面測試一下 Nginx/PHP/PHP-FPM/APC 組合是否能正常工作。如果一切正常的話訪問 http://localhost/info.php 能看到 PHP 環境詳細資訊:

# vi /usr/local/www/nginx/info.php
<?php phpinfo(); ?>


參考:http://www.vpsee.com/2014/04/install-nginx-php-apc-mysql-on-freebsd-10-0/


相關文章