[macOS] macOS下,VirtualBox安装CentOS7.4, 搭建nginx, mysql, PHP5.6&PHP7.1

准备工作

网络设置

相关教程:http://www.jianshu.com/p/e6ba699b5992

ifcfg-enp0s3配置

TYPE=Ethernet

BOOTPROTO=dhcp

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=enp0s3

UUID=8a0822ab-f63d-4d41-a2b8-6512a299287a

DEVICE=enp0s3

ONBOOT=yes

ifcfg-enp0s8配置

TYPE=Ethernet

BOOTPROTO=static

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=enp0s8

UUID=4e67634f-a430-41a6-a8c9-1e65fb728e36

DEVICE=enp0s8

ONBOOT=yes

IPADDR=192.168.56.100

NETMASK=255.255.255.0

安装增强工具

启动虚拟机,点击“设备” => “安装增强功能”

运行以下命令

yum install kernel-devel gcc

安装完成后,做一个连接

ln -s /usr/src/kernels/3.10.0-514.el7.x86_64 /usr/src/linux

挂载光盘,安装

mount /dev/cdrom /mnt

cd /mnt

./VBoxLinuxAdditions.run

设置开机自动挂载(我没有做这一步)

vi /etc/rc.d/rc.local

在最后加上

mount -t vboxsf shared /mnt

建立相关目录

ln -s /media/sf_Project /data/www

mkdir -p /var/setup

mkdir -p /var/software

mkdir -p /data/www/logs/nginx

mkdir -p /data/www/logs/mysql

mkdir -p /data/www/logs/php

nginx

下载必要文件

cd /var/setup

wget http://nginx.org/download/nginx-1.11.10.tar.gz

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz

wget http://zlib.net/zlib-1.2.11.tar.gz

wget http://www.canonware.com/download/jemalloc/jemalloc-4.2.1.tar.bz2

安装依赖

yum install zlib-devel openssl-devel -y

安装PCRE

cd /var/setup/

tar zvxf pcre-8.40.tar.gz

cd pcre-8.40/

./configure

make && make install

安装zlib

cd /var/setup/

tar zxvf zlib-1.2.11.tar.gz

cd zlib-1.2.11

./configure

make && make install

安装jemalloc

cd /var/setup/

tar xjf jemalloc-4.2.1.tar.bz2

cd jemalloc-4.2.1/

./configure

make && make install

echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf

ldconfig

配置

用户配置

groupadd www

useradd -g www www -s /sbin/nologin

chown -R www:www /data/www

添加用户组

usermod -a -G vboxsf www

usermod -a -G vboxsf nobody

关闭防火墙

systemctl stop firewalld.service

关闭开机启动

systemctl disable firewalld.service

安装nginx

cd /var/setup/

tar zxvf nginx-1.11.10.tar.gz

cd nginx-1.11.10/

./configure --prefix=/var/software/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/var/setup/openssl-1.1.0e --with-zlib=/var/setup/zlib-1.2.11 --with-pcre=/var/setup/pcre-8.40 --with-ld-opt="-ljemalloc"

make && make install

配置nginx

vim /var/software/nginx/conf/nginx.conf

修改前几行为:

user www www;

 

worker_processes auto;

 

error_log /data/www/logs/nginx/error.log crit;

 

pid /run/nginx.pid;

 

events{

  use epoll;

  worker_connections 65535;

}

找到,并修改 root 行的内容

location / {

    root /data/www;

    index index.html index.htm;

}

测试和运行

cd /var/software/nginx

ldconfig

/var/software/nginx/sbin/nginx -c /var/software/nginx/conf/nginx.conf -t

若显示以下信息,则表示配置是正常的

nginx: the configuration file /var/software/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /var/software/nginx/conf/nginx.conf test is successful

查看jemalloc是否生效,需要先启动nginx

/var/software/nginx/sbin/nginx -c /var/software/nginx/conf/nginx.conf

lsof -n | grep jemalloc

若显示以下信息,则表示jemalloc正常

nginx     21925                root  mem       REG              253,0   2531464   51238929 /usr/local/lib/libjemalloc.so.2

nginx     21926                 www  mem       REG              253,0   2531464   51238929 /usr/local/lib/libjemalloc.so.2

nginx     21927                 www  mem       REG              253,0   2531464   51238929 /usr/local/lib/libjemalloc.so.2

建立测试首页

touch /data/www/index.html

vim /data/www/index.html

输入以下内容

<html>

    <head><title>nginx index.html</title></head>

    <body>

    <h1>index.html</h1>

    </body>

</html>

浏览器打开,http://192.168.56.100,显示页面则代表正常

作为服务,开机后启动

vim /usr/lib/systemd/system/nginx.service

填入以下内容

[Unit]

Description=The nginx HTTP and reverse proxy server

After=syslog.target network.target remote-fs.target nss-lookup.target

 

[Service]

Type=forking

PIDFile=/run/nginx.pid

ExecStartPre=/var/software/nginx/sbin/nginx -c /var/software/nginx/conf/nginx.conf -t 

ExecStart=/var/software/nginx/sbin/nginx -c /var/software/nginx/conf/nginx.conf

ExecReload=/bin/kill -s HUP $MAINPID

ExecStop=/bin/kill -s QUIT $MAINPID

PrivateTmp=true

 

[Install]

WantedBy=multi-user.target

设置生效

systemctl enable nginx.service

systemctl list-unit-files | grep enabled | grep nginx

启动服务

/var/software/nginx/sbin/nginx -s stop

systemctl daemon-reload

systemctl start nginx.service

systemctl status nginx.service -l

ps -ef | grep nginx

lsof -n | grep jemalloc

常用命令

systemctl start|stop|reload|status nginx.service

安装MySQL

安装必要软件

yum –y install perl perl-devel perl-Module-Install.noarch libaio libaio-devel

下载源码

cd /var/setup

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.28-linux-glibc2.5-x86_64.tar.gz 

tar zxvf mysql-5.6.28-linux-glibc2.5-x86_64.tar.gz

mv mysql-5.6.28-linux-glibc2.5-x86_64 /var/software/mysql

创建用户

groupadd mysql

useradd -r -g mysql mysql

添加用户组

usermod -a -G vboxsf mysql

安装

cd  /var/software/mysql

chown -R mysql:mysql ./

./scripts/mysql_install_db --user=mysql --basedir=/var/software/mysql --datadir=/var/software/mysql/data

修改配置

vim /var/software/mysql/my.cnf

找到,并修改为

[mysqld]

datadir=/var/software/mysql/data

 

[mysqld_safe]

log-error=/data/www/logs/mariadb.log

pid-file=/var/software/mysql/mariadb.pid

找到

socket=/var/lib/mysql/mysql.sock

修改为

socket=/tmp/mysql.sock

启动

./bin/mysqld_safe --user=mysql

设置账号密码

/var/software/mysql/bin/mysqladmin -u root password '123456'

/var/software/mysql/bin/mysqladmin -u root -p -h localhost.localdomain password '123456'

配置root账号权限

/var/software/mysql/bin/mysql -u root -p

执行以下命令。记住下面的123456是root的密码

CREATE USER 'root'@'%' IDENTIFIED BY '123456';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

启动配置

ln -s /var/software/mysql/support-files/mysql.server /etc/init.d/

vim /etc/init.d/mysql.server

找到 basedir, datadir, mysqld_pid_file_path,修改为

basedir=/var/software/mysql

datadir=/var/software/mysql/data

mysqld_pid_file_path=/var/software/mysql/mysql.pid

自启动

chkconfig mysql.server on

常用命令

/etc/init.d/mysql.server start|stop|restart|reload|status

安装memcached

安装

yum install libevent-devel 

cd /var/setup/

wget http://www.memcached.org/files/memcached-1.4.35.tar.gz

tar zxvf memcached-1.4.35.tar.gz

cd memcached-1.4.35/

./configure 

make && make install

开机自启动

vim /etc/init.d/memcached

输入以下内容

#!/bin/sh

#

# memcached:    MemCached Daemon

#

# chkconfig:    - 90 25 

# description:  MemCached Daemon

#

# Source function library.

. /etc/rc.d/init.d/functions

. /etc/sysconfig/network

 

start() 

{

        echo -n $"Starting memcached: "

        daemon /usr/local/bin/memcached -u daemon -d -m 4096 -l 127.0.0.1 -p 11211

        echo

}

 

stop() 

{

        echo -n $"Shutting down memcached: "

        killproc memcached 

        echo

}

 

[ -f /usr/local/bin/memcached ] || exit 0

 

# See how we were called.

case "$1" in

  start)

        start

        ;;

  stop)

        stop

        ;;

  restart|reload)

        stop

        start

        ;;

  condrestart)

        stop

        start

        ;;

  *)

        echo $"Usage: $0 {start|stop|restart|reload|condrestart}"

        exit 1

esac

exit 0

设置

chmod +x /etc/init.d/memcached

chkconfig --add memcached 

chkconfig --level 235 memcached on

常用操作

/etc/rc.d/init.d/memcached start|stop|restart|reload|condrestart

注意

若memcached启动后仍无法连接,请修改/etc/init.d/memcached里面的host 和端口是否正确

安装PHP5.6

预安装

yum -y install make cmake automake autoconf kernel-devel ncurses-devel libxml2-devel curl-devel libjpeg-devel libpng-devel  pcre-devel libtool-libs freetype-devel gd zlib-devel file bison patch mlocate flex diffutils readline-devel glibc-devel glib2-devel bzip2-devel gettext-devel libcap-devel libmcrypt-devel openldap openldap-devel libxslt-devel libldap libldap-devel epel-release php-mcrypt

安装

cd /var/setup

wget http://am1.php.net/distributions/php-5.6.30.tar.gz

tar zxvf php-5.6.30.tar.gz

cd php-5.6.30

./configure --prefix=/var/software/php/ --with-config-file-path=/var/software/php/etc/ --with-mysql=/var/software/mysql/ --with-mysqli=/var/software/mysql/bin/mysql_config --with-zlib --with-curl --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mbstring=all --with-openssl --with-gd --with-pdo-mysql=/var/software/mysql

make && make install

修改ini配置

cp php.ini-production /var/software/php/etc/php.ini

vim /var/software/php/etc/php.ini

找到error_log,并设置为

error_log=/data/www/logs/php/php_errors.log

找到date.timezone,并设置为

date.timezone = Asia/shanghai

加入扩展地址

extension_dir = "/var/software/php/lib/php/extensions/no-debug-non-zts-20131226"

修改fpm配置

cd /var/software/php

cp etc/php-fpm.conf.default etc/php-fpm.conf

vim etc/php-fpm.conf

找到error_log,并设置为

error_log = /data/www/logs/php/php-fpm.log

开机自启动

cp /var/setup/php-5.6.30/sapi/fpm/init.d.php-fpm /etc/init.d/php56-fpm

chmod +x /etc/init.d/php56-fpm

chkconfig php56-fpm on

安装memcache扩展

cd /var/setup/

wget https://pecl.php.net/get/memcache-2.2.7.tgz

tar zvxf memcache-2.2.7.tgz

cd memcache-2.2.7/

/var/software/php/bin/phpize

./configure --with-php-config=/var/software/php/bin/php-config

make && make install

修改php.ini

vim /var/software/php/etc/php.ini

加入

extension=memcache.so

安装rabbitmq扩展

yum install librabbitmq-devel

cd /var/setup/

wget https://pecl.php.net/get/amqp-1.8.0.tgz

tar zvxf amqp-1.8.0.tgz

cd amqp-1.8.0/

/var/software/php/bin/phpize

./configure --with-php-config=/var/software/php/bin/php-config

make && make install

修改php.ini

vim /var/software/php/etc/php.ini

加入

extension=amqp.so

安装phalcon扩展

cd /var/setup/

wget https://github.com/phalcon/cphalcon/archive/phalcon-v2.0.9.tar.gz

tar zxvf phalcon-v2.0.9.tar.gz

cd cphalcon-phalcon-v2.0.9/build/64bits/

/var/software/php/bin/phpize

./configure --with-php-config=/var/software/php/bin/php-config

make && make install

修改php.ini

vim /var/software/php/etc/php.ini

加入

extension=phalcon.so

安装zip扩展

cd /var/setup/php-5.6.30/ext/zip/

/var/software/php/bin/phpize

./configure --with-php-config=/var/software/php/bin/php-config

make && make install

修改php.ini

vim /var/software/php/etc/php.ini

加入

extension=zip.so

安装xdebug

cd /var/setup/

wget https://pecl.php.net/get/xdebug-2.5.1.tgz

tar zxvf xdebug-2.5.1.tgz

cd xdebug-2.5.1/

/var/software/php/bin/phpize

./configure --with-php-config=/var/software/php/bin/php-config

make && make install

修改php.ini

vim /var/software/php/etc/php.ini

相关配置内容

zend_extension=/var/software/php/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so

; Remote settings

xdebug.remote_autostart=on

xdebug.remote_enable=on

xdebug.remote_handler=dbgp

xdebug.remote_mode=req

; 注意!!!!这里的IP,是宿主机的IP(也就是苹果系统跟virtualbox的建立host-only的连接的IP)

xdebug.remote_host="192.168.56.1"

xdebug.remote_port=9001

 

; General

xdebug.collect_includes=on

xdebug.collect_params=1

xdebug.collect_return=1

xdebug.default_enable=on

xdebug.extended_info=1

xdebug.manual_url=http://www.php.net

xdebug.show_local_vars=0

xdebug.show_mem_delta=0

xdebug.max_nesting_level=100

;xdebug.idekey=

 

; Trace options

xdebug.auto_trace=0

xdebug.trace_format=0

xdebug.trace_output_dir=/data/www/logs/php/xdebug

xdebug.trace_options=0

xdebug.trace_output_name="xdebug_trace_%t"

 

; Profiling

xdebug.profiler_enable=0

xdebug.profiler_append=0

xdebug.profiler_enable_trigger=1

xdebug.profiler_output_dir=/data/www/logs/php/xdebug

xdebug.profiler_output_name="xdebug_profiler_%t"

通过netbeans IDE进行命令行调试设置

vim ~/.bash_profile

加入

export XDEBUG_CONFIG="idekey=netbeans-xdebug"

安装memcached扩展

安装libmemcached

cd /var/setup

wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz

tar zxvf libmemcached-1.0.18.tar.gz

cd libmemcached-1.0.18/

./configure

make && make install

安装扩展,pecl上的3.0版本会出现编译不过的情况,只能使用2.2版本

cd /var/setup

wget https://pecl.php.net/get/memcached-2.2.0.tgz

tar zxvf memcached-2.2.0.tgz

cd memcached-2.2.0/

/var/software/php/bin/phpize

./configure --with-php-config=/var/software/php/bin/php-config

make && make install

修改php.ini

vim /var/software/php/etc/php.ini

加入

extension=memcached.so

安装mcrypt

yum install libmcrypt-devel

cd /var/setup/php-5.6.30/ext/mcrypt

/var/software/php/bin/phpize

./configure  -with-php-config=/var/software/php/bin/php-config

make && make install

修改php.ini

vim /var/software/php/etc/php.ini

加入

extension=mcrypt.so

安装swoole

安装hiredis

cd /var/setup/

wget https://github.com/redis/hiredis/archive/v0.13.3.tar.gz

tar zxvf v0.13.3.tar.gz

cd hiredis-0.13.3/

make -j

make install

ldconfig

cd /var/setup

git clone https://github.com/swoole/swoole-src.git

cd swoole-src

checkout某个特定的tag作为分支编译

git checkout tags/v2.0.6 -b v2.0.6

/var/software/php/bin/phpize

./configure  -with-php-config=/var/software/php/bin/php-config --enable-coroutin

make && make install

修改php.ini

vim /var/software/php/etc/php.ini

加入

extension=swoole.so

安装pcntl扩展

cd /var/setup/php-5.6.30/ext/pcntl

/var/software/php/bin/phpize

./configure  -with-php-config=/var/software/php/bin/php-config

make && make install

修改php.ini

vim /var/software/php/etc/php.ini

加入

extension=pcntl.so

安装socket扩展

cd /var/setup/php-5.6.30/ext/sockets/

/var/software/php/bin/phpize

./configure  -with-php-config=/var/software/php/bin/php-config

make && make install

修改php.ini

vim /var/software/php/etc/php.ini

加入

extension=sockets.so

安装redis扩展

cd /var/setup

wget https://pecl.php.net/get/redis-3.1.1.tgz

tar zxvf redis-3.1.1.tgz

cd redis-3.1.1/

make clean

/var/software/php/bin/phpize

./configure --with-php-config=/var/software/php/bin/php-config

make && make install

修改php.ini

vim /var/software/php/etc/php.ini

加入

extension=redis.so

安装inotify扩展

cd /var/setup

wget https://pecl.php.net/get/inotify-0.1.6.tgz

tar zxvf inotify-0.1.6.tgz

cd inotify-0.1.6/

make clean

/var/software/php/bin/phpize

./configure --with-php-config=/var/software/php/bin/php-config

make && make install

修改php.ini

vim /var/software/php/etc/php.ini

加入

extension=inotify.so

安装composer

cd /var/software/

mkdir /var/software/composer56

cd /var/software/composer56

curl -s http://getcomposer.org/installer | /var/software/php/bin/php

常用命令

/var/software/php/bin/php composer.phar install

安装PHP7.1

安装

cd /var/setup

wget http://cn2.php.net/distributions/php-7.1.2.tar.gz

tar zxvf php-7.1.2.tar.gz

cd php-7.1.2

./configure --prefix=/var/software/php71/ --with-config-file-path=/var/software/php71/etc/  --with-mysqli=/var/software/mysql/bin/mysql_config --with-zlib --with-curl --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mbstring=all --with-openssl --with-gd --with-pdo-mysql=/var/software/mysql

make && make install

修改ini配置

cp php.ini-production /var/software/php71/etc/php.ini

vim /var/software/php71/etc/php.ini

找到error_log,并设置为

error_log=/data/www/logs/php/php71_errors.log

找到date.timezone,并设置为

date.timezone = Asia/shanghai

加入扩展地址

extension_dir = "/var/software/php71/lib/php/extensions/no-debug-non-zts-20160303"

修改fpm配置

cd /var/software/php71

cp etc/php-fpm.conf.default etc/php-fpm.conf

vim etc/php-fpm.conf

找到error_log,并设置为

error_log = /data/www/logs/php/php71-fpm.log

修改fpm的监听端口

vim /var/software/php71/etc/php-fpm.d/www.conf.default

找到listen的端口,并设置为

listen = 127.0.0.1:9071

开机自启动

cp /var/setup/php-7.1.2/sapi/fpm/init.d.php-fpm /etc/init.d/php71-fpm

chmod +x /etc/init.d/php71-fpm

chkconfig php71-fpm on

安装rabbitmq扩展

yum install librabbitmq-devel

cd /var/setup/

wget https://pecl.php.net/get/amqp-1.8.0.tgz

tar zvxf amqp-1.8.0.tgz

cd amqp-1.8.0/

/var/software/php71/bin/phpize

./configure --with-php-config=/var/software/php71/bin/php-config

make && make install

修改php.ini

vim /var/software/php71/etc/php.ini

加入

extension=amqp.so

安装zip扩展

cd /var/setup/php-7.1.2/ext/zip/

/var/software/php71/bin/phpize

./configure --with-php-config=/var/software/php71/bin/php-config

make && make install

修改php.ini

vim /var/software/php71/etc/php.ini

加入

extension=zip.so

安装xdebug

cd /var/setup/xdebug-2.5.1/

make clean

/var/software/php71/bin/phpize

./configure --with-php-config=/var/software/php71/bin/php-config

make && make install

修改php.ini

vim /var/software/php71/etc/php.ini

相关配置内容

zend_extension=/var/software/php71/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so

; Remote settings

xdebug.remote_autostart=on

xdebug.remote_enable=on

xdebug.remote_handler=dbgp

xdebug.remote_mode=req

; 注意!!!!这里的IP,是宿主机的IP(也就是苹果系统跟virtualbox的建立host-only的连接的IP)

xdebug.remote_host="192.168.56.1"

xdebug.remote_port=9002

 

; General

xdebug.collect_includes=on

xdebug.collect_params=1

xdebug.collect_return=1

xdebug.default_enable=on

xdebug.extended_info=1

xdebug.manual_url=http://www.php.net

xdebug.show_local_vars=0

xdebug.show_mem_delta=0

xdebug.max_nesting_level=100

;xdebug.idekey=

 

; Trace options

xdebug.auto_trace=0

xdebug.trace_format=0

xdebug.trace_output_dir=/data/www/logs/php/xdebug71

xdebug.trace_options=0

xdebug.trace_output_name="xdebug_trace_%t"

 

; Profiling

xdebug.profiler_enable=0

xdebug.profiler_append=0

xdebug.profiler_enable_trigger=1

xdebug.profiler_output_dir=/data/www/logs/php/xdebug71

xdebug.profiler_output_name="xdebug71_profiler_%t"

安装memcached扩展

安装扩展

cd /var/setup

wget https://pecl.php.net/get/memcached-3.0.3.tgz

tar zxvf memcached-3.0.3.tgz

cd memcached-3.0.3/

/var/software/php71/bin/phpize

./configure --with-php-config=/var/software/php71/bin/php-config

make && make install

修改php.ini

vim /var/software/php71/etc/php.ini

加入

extension=memcached.so

mcrypt的安装

cd /var/setup/php-7.1.2/ext/mcrypt

/var/software/php71/bin/phpize

./configure  -with-php-config=/var/software/php71/bin/php-config

make && make install

修改php.ini

vim /var/software/php71/etc/php.ini

加入

extension=mcrypt.so

安装pcntl扩展

cd /var/setup/php-7.1.2/ext/pcntl

/var/software/php71/bin/phpize

./configure  -with-php-config=/var/software/php71/bin/php-config

make && make install

修改php.ini

vim /var/software/php71/etc/php.ini

加入

extension=pcntl.so

安装socket扩展

cd /var/setup/php-7.1.2/ext/sockets/

/var/software/php71/bin/phpize

./configure  -with-php-config=/var/software/php71/bin/php-config

make && make install

修改php.ini

vim /var/software/php71/etc/php.ini

加入

extension=sockets.so

安装redis扩展

cd /var/setup

wget https://pecl.php.net/get/redis-3.1.1.tgz

tar zxvf redis-3.1.1.tgz

cd redis-3.1.1/

/var/software/php71/bin/phpize

./configure --with-php-config=/var/software/php71/bin/php-config

make && make install

修改php.ini

vim /var/software/php71/etc/php.ini

加入

extension=redis.so

安装inotify扩展

cd /var/setup

wget https://pecl.php.net/get/inotify-2.0.0.tgz

tar zxvf inotify-2.0.0.tgz

cd inotify-2.0.0/

/var/software/php71/bin/phpize

./configure --with-php-config=/var/software/php71/bin/php-config

make && make install

修改php.ini

vim /var/software/php71/etc/php.ini

加入

extension=inotify.so

安装swoole

安装hiredis

cd /var/setup/

wget https://github.com/redis/hiredis/archive/v0.13.3.tar.gz

tar zxvf v0.13.3.tar.gz

cd hiredis-0.13.3/

make -j

make install

ldconfig

cd /var/setup

git clone https://github.com/swoole/swoole-src.git

cd swoole-src

checkout某个特定的tag作为分支编译

git checkout tags/v1.9.6 -b v1.9.6

/var/software/php71/bin/phpize

./configure -with-php-config=/var/software/php71/bin/php-config --enable-async-redis --enable-jemalloc

make && make install

修改php.ini

vim /var/software/php71/etc/php.ini

加入

extension=swoole.so

安装composer(可选)

cd /var/software/

mkdir /var/software/composer71

cd /var/software/composer71

curl -s http://getcomposer.org/installer | /var/software/php71/bin/php

常用命令

/var/software/php71/bin/php composer.phar install

安装redis服务端(可选)

cd /var/setup/

wget http://download.redis.io/releases/redis-3.2.8.tar.gz

tar zxvf redis-3.2.8.tar.gz

mv redis-3.2.8 /var/software/

cd /var/software/redis-3.2.8/

make

开机启动

cp /var/software/redis-3.2.8/utils/redis_init_script /etc/init.d/redisd

vim /etc/init.d/redisd

在#!/bin/sh下面,加入

# chkconfig:   23459010

EXEC=/usr/local/bin/redis-server

修改为

EXEC=/var/software/redis-3.2.8/src/redis-server

CLIEXEC=/usr/local/bin/redis-cli

修改为

CLIEXEC=/var/software/redis-3.2.8/src/redis-cli

CONF="/etc/redis/${REDISPORT}.conf"

修改为

CONF="/var/software/redis-3.2.8/redis.conf"

设置为开机自启动服务器

chkconfig redisd on

常用命令

service redisd start|stop

virtualbox端口映射

80与443端口转发

参考文章Mac下Virtualbox端口转发到虚机的问题。由于1024以下的端口比较特殊,所以这里特意讲解一下

设置virtualbox的端口映射

 

Mac的系统设置

sudo -i

echo "rdr pass on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080" > /etc/pf.anchors/vbox

echo "rdr pass on lo0 inet proto tcp from any to any port 443 -> 127.0.0.1 port 8443" > /etc/pf.anchors/vbox443

vi /etc/pf.conf

加入如下两行代码

rdr-anchor "vbox"

rdr-anchor "vbox443"

load anchor "vbox" from "/etc/pf.anchors/vbox"

load anchor "vbox443" from "/etc/pf.anchors/vbox443"

最终的代码,一定要按照下面的顺序,要不然要报错的

#

# com.apple anchor point

#

scrub-anchor "com.apple/*"

nat-anchor "com.apple/*"

rdr-anchor "com.apple/*"

rdr-anchor "vbox"

rdr-anchor "vbox443"

dummynet-anchor "com.apple/*"

anchor "com.apple/*"

load anchor "com.apple" from "/etc/pf.anchors/com.apple"

load anchor "vbox" from "/etc/pf.anchors/vbox"

load anchor "vbox443" from "/etc/pf.anchors/vbox443"

激活配置

pfctl -ef /etc/pf.conf

设置开机启动

方法一

vi /System/Library/LaunchDaemons/com.apple.pfctl.plist

添加第二行 (-e这一行)

<string>pfctl</string>

<string>-e</string>

<string>-f</string>

<string>/etc/pf.conf</string>

参考如何编辑以上文件:Editing the /System/Library/LaunchDaemons/com.apple.pfctl.plist file

方法二(未验证是否可行)

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.pfctl.plist

短命令

vim ~/.bash_profile

添加以下内容

alias nginx.start='systemctl start nginx.service'

alias nginx.stop='systemctl stop nginx.service'

alias nginx.restart='systemctl restart nginx.service'

alias nginx.reload='systemctl reload nginx.service'

 

alias php-fpm.force-quit='/etc/init.d/php56-fpm force-quit'

alias php-fpm.start='/etc/init.d/php56-fpm start'

alias php-fpm.stop='/etc/init.d/php56-fpm stop'

alias php-fpm.reload='/etc/init.d/php56-fpm reload'

alias php-fpm.restart='/etc/init.d/php56-fpm restart'

alias php-fpm.status='/etc/init.d/php56-fpm status'

 

alias php71-fpm.force-quit='/etc/init.d/php71-fpm force-quit'

alias php71-fpm.start='/etc/init.d/php71-fpm start'

alias php71-fpm.stop='/etc/init.d/php71-fpm stop'

alias php71-fpm.reload='/etc/init.d/php71-fpm reload'

alias php71-fpm.restart='/etc/init.d/php71-fpm restart'

alias php71-fpm.status='/etc/init.d/php71-fpm status'

 

alias mysql.start='/etc/init.d/mysql.server start'

alias mysql.stop='/etc/init.d/mysql.server stop'

alias mysql.restart='/etc/init.d/mysql.server restart'

alias mysql.reload='/etc/init.d/mysql.server reload'

alias mysql.status='/etc/init.d/mysql.server status'

 

alias redis.start='service redisd start'

alias redis.stop='service redisd stop'

alias redis.restart='redis.stop && redis.start'

 

alias memcached.start='/etc/rc.d/init.d/memcached start'

alias memcached.stop='/etc/rc.d/init.d/memcached stop'

alias memcached.restart='/etc/rc.d/init.d/memcached restart'

这样就不用打那么多字啦

posted @ 2017-03-02 20:09 DavidHHuan 阅读(...) 评论(...) 编辑 收藏