Php7+Nginx+PostgeSql+Redis+Ssdb
1.环境
1.操作系统:macOS Sierra 10.12.6
2.xcode (可在Mac App Store 自行下载)
3.所有的软件源码放在~/src目录
4.所有的开发项目源码放在~/projects目录
2.安装前的准备
安装之前请确认是否安装”xcode”,可解决安装软件时的大部分依赖问题。
安装mac包的管理工具”brew”。
$ :xcode-select --install $ :ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装wget
$ :brew install wget
安装git
$ :brew install git
安装依赖
$ :brew install readline libmcrypt freetype libpng jpeg mcrypt mhash openssl re2c ImageMagick bison autoconf ffmpeg ImageMagick pcre zlib
3.Nginx安装步骤
$ :cd ~/src
$ :wget http://nginx.org/download/nginx-1.8.0.tar.gz
$ :tar -zxf nginx-1.8.0.tar.gz
$ :./configure --with-http_ssl_module --with-ld-opt="-L/usr/local/opt/openssl/lib" --with-cc-opt="-I/usr/local/opt/openssl/include"
$ :make
$ :sudo make install
# --将nginx加入环境变量
$ :vim ~/.bash_profile
# --在.bash_profil文件加入
export PATH=/usr/local/nginx/sbin:$PATH
# --更新环境变量
$ :source ~/.bash_profile
# --nginx 相关命令
# --nginx start
$ :sudo nginx -c /usr/local/nginx/conf/nginx.conf
# --nginx stop
$ :sudo nginx -s stop
# --nginx reload
$ :sudo nginx -s reload
安装完成之后可在浏览器(localhost:80)访问,如果访问失败检查(/etc/hosts)文件是否配置”127.0.0.1 localhost”或是查看端口是否被占用
4.PostgreSQL数据库安装步骤
$ :cd ~/src
$ :wget https://ftp.postgresql.org/pub/source/v9.3.5/postgresql-9.3.5.tar.gz
$ :tar -zxf postgresql-9.3.5.tar.gz
$ :cd postgresql-9.3.5
$ :./configure
$ :make
$ :sudo make install
# --数据库的相关设置
# --配置环境变量
$ :vim ~/.bash_profile
# --在.bash_profile文件中加入
export PGDATA=/Users/apple/postgresql/data
export PATH=PATH=/usr/local/pgsql/bin:$PATH
# --PATH生效
$ :source ~/.bash_profile
# --初始化数据库
$ :initdb
# --启动数据库
$ :pg_ctl start
# --创建数据库用户postgres
$ :createuser postgres -s(创建最高权限用户,类似mysql的root)
# --进入数据库客户端
$ :psql -U postgres
# --数据库常用命令
$ :\l #显示所有数据(L小写)
$ :\c dataname #连接dataname数据库
$ :\q #退出客户端
$ :\d #所有当前库的所有表
$ :\d tablename#查看tablename的表字段
5.Redis安装步骤
$ :cd ~/src
$ :wget http://download.redis.io/releases/redis-3.0.2.tar.gz
$ :tar -zxf redis-3.0.2.tar.gz
$ :cd redis-3.0.2
$ :make
$ :sudo make install
# --redis配置
$ :cd ~
$ :mkdir redis
# --把~/src/redis-3.0.2/redis.conf复制到~/redis/
$ :cp ~/src/redis-3.0.2/redis.conf ~/redis/
# --修改redis.conf,修改daemonize yes
# --后台启动redis
$ :redis-server redis.conf &
# --启动redis client
$ :redis-cli -p 6379
6.SSDB安装步骤
$ :cd ~/src
$ :wget --no-check-certificate https://github.com/ideawu/ssdb/archive/master.zip
$ :unzip master
$ :cd ssdb-master
$ :make clean
$ :make
# --ssdb默认的安装路径在(/usr/local/ssdb)
$ :sudo make install
# --配置环境变量
$ :vim ~/.bash_profile
# --将ssdb加入环境变量
export PATH=/usr/local/ssdb:$PATH
# --环境变量生效
$ :source ~/.bash_profile
# --ssdb启动配置
$ :cd ~
$ :mkdir ssdb
# --复制ssdb.conf到~/ssdb/目录
$ :cp ~/src/ssdb-master ~/ssdb
# --在~/ssdb目录下创建var文件夹
$ :mkdir ~/ssdb/var
# --ssdb基础命令(需要在ssdb.conf所在的目录执行)
# --start ssdb-server
$ :ssdb-server -d ssdb.conf
# --start ssdb-client
$ :ssdb-cli -p 8888
# --stop ssdb-server
$ :ssdb-server ssdb.conf -s stop
7.Php7安装步骤
$ :cd ~/src
$ :wget http://cn2.php.net/distributions/php-7.1.4.tar.gz
$ :tar -zxf php-7.1.4.tar.gz
$ :./configure --with-pgsql --with-pdo-pgsql --with-openssl=/usr/local/opt/openssl/ --with-mcrypt --enable-zip --enable-mbstring --enable-fpm --enable-opcache --with-curl --with-libedit=/usr/local/opt/libedit --enable-pcntl --enable-sysvmsg --with-zlib-dir=/usr/local/opt/zlib --with-gd --with-jpeg-dir=/usr/local/opt/jpeg/ --with-png-dir=/usr/local/opt/libpng/ --with-freetype-dir=/usr/local/opt/freetype --with-iconv=/usr/local/opt/libiconv/ --enable-bcmath
$ :make
$ :sudo make install
当执行./configure之后没有生成Makefile文件时,请检查/usr/local/Cellar下是否存在libxml2文件夹,如果不存在,则
$ :brew install libxml2
,如果存在,则需要在./configure命令后面指明libxml2文件夹的位置
# --在之前的./configure命令后面添加
--with-libxml-dir=/usr/local/Cellar/libxml2/
# --PHP编译完成之后,在源代码目录执行一下命令:
$ :cp php.ini-production /usr/local/lib/php.ini
# --编辑php.ini文件
$ :vim /usr/local/lib/php.ini
# --查找timezone修改
date.timezone = "Asia/Shanghai"
always_populate_raw_post_data = -1
# --查找max_execution_time,修改执行时间
max_execution_time = 300
# --在PHP源代码目录,执行一下命令,安装fpm
$ :sudo cp sapi/fpm/php-fpm.conf /usr/local/etc/
$ :sudo cp sapi/fpm/php-fpm /usr/local/bin/
# --修改fpm配置
$ :vim /usr/local/etc/php-fpm.conf
# --查找clear_env,修改
clear_env=no
# --最长执行时间
request_terminate_timeout = 300
# 打开PHP错误日志输出到php_error.log文件
catch_workers_output = yes
# --将以下内容拷贝到/usr/local/sbin/fpm中
$ :vim /usr/local/sbin/fpm
#!/bin/bash
USER=`whoami`
PHP_CGI=/usr/local/sbin/php-fpm
PHP_CGI_NAME=`basename $PHP_CGI`
RETVAL=0
start() {
echo -n "Starting PHP FPM: "
$PHP_CGI
RETVAL=$?
echo "$PHP_CGI_NAME."
}
stop() {
echo -n "Stopping PHP FPM: "
killall -QUIT -u $USER php-fpm
RETVAL=$?
echo "$PHP_CGI_NAME."
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: fpm {start|stop|restart}"
exit 1
;;
esac
exit $RETVA
# --将fpm文件改为可执行文件 确保fpm在环境变量PATH中
$ :chmod 777 /usr/local/sbin/fpm
# --启动:
$ :fpm start
# --关闭:
$ :fpm stop
# --重启:
$ :fpm restart
# --注意,更改环境变量,必须要重启
8.Phalcon框架安装
$ :cd ~/src
$ :wget https://github.com/phalcon/cphalcon/archive/v3.1.2.tar.gz -O cphalcon-3.1.2.tar.gz
tar -zxvf cphalcon-3.1.2.tar.gz
$ :cd cphalcon-3.1.2/build
$ :sudo ./install
# --php添加phalcon框架
$ :vim /usr/local/lib/php.ini
# --添加
extension=phalcon.so
9.Php添加Redis扩展
$ :cd ~/src
$ :git clone https://github.com/phpredis/phpredis.git
$ :cd phpredis/
$ :phpize # --检查php环境
$ :./configure
$ :make
$ :sudo make isntall
# --添加
$ :vim /usr/local/lib/php.ini
extension = redis.so
10.Php添加SSDB扩展
$ :cd ~/src
$ :git clone https://github.com/jonnywang/phpssdb.git
# --切换分支
$ :git checkout php7
$ :phpize
$ :./configure
$ :make
$ :sudo make install
# --添加
$ :vim /usr/local/lib/php.ini
extension = ssdb.so
# --重启fpm
$ :fpm restart
11.关于Nginx配置
# --在/usr/local/nginx/conf 新建vhost文件夹,方便在外部配置web站点
$ :mkdir vhost
$ :vim /usr/local/nginx/conf/nginx.conf
找到http选项,修改
http {
....
# --打开注释
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# --配置日志(位置在:/usr/local/nginx/logs/)
access_log logs/access.log main;
# --配置web站点
include vhost/*.conf;
# --注释掉server里面的内容
# server {
#
#
...
在vhost文件夹下面新建站点配置文件
$ :touch test.web.conf
打开文件
$ :vim test.web.conf
添加内容
server {
# --访问端口
listen 80;
# --站点名称
server_name test.web.com;
index index.html index.htm index.php;
# --路径
set $root_path '/Users/apple/projects';
root $root_path;
try_files $uri $uri @rewrite;
client_max_body_size 50m;
location @rewrite {
rewrite ^/(.*)$ /index.php?_url=/$1;
}
location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
root $root_path;
}
location ~ /\.ht {
deny all;
}
}
在/etc/hosts 文件中添加web站点
127.0.0.1 test.web.com
在/Users/apple/projects中新建index.php测试
# --index.php
<?php
echo "Hello World?";
phpinfo();
?>
访问index.php
在浏览器中输入[test.web.com/index.php]访问,如遇访问不成功,请检查端口是否被占用,或者Nginx服务器是否处于开启状态。