在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程

因为甲骨文的尿性。mariadb应该要顶替mysql了。所以抛弃mysql

1,编译nginx
分别下载nginx,openssl,pcre
编译openssl的时候会提示

WARNING! If you wish to build 64-bit library, then you have to invoke ‘./Configure darwin64-x86_64-cc' *manually*.

如果你不停止编译就会出错。这个问题应该是 openssl/config脚本猜对你的系统是64位,但是 会根据$KERNEL_BITS来判断是否开启x86_64编译,默认 是不开启的(很奇怪的设置,虽然会给你5秒时间停止编译并手动开启),所以你生成的openssl库文件是32位的,最后静态链接到nginx会出错。目前看来没有很好的方法把x86_64的参数传到openssl配置文件中 (openssl/config 猜测os架构,设置编译的参数是32位还是64位,默认是32位,然后调用openssl/Configure生成Makefile)

可以在configure之前export KERNEL_BITS=64,如果还是不起作用
就要手到修改了
进入nginx目录

复制代码 代码如下:


$ ./configure ./configure –prefix=https://www.jb51.net/usr/locale/nginx –with-openssl=../openssl-1.0.1i –with-pcre=../pcre-8.33

手动修改 objs/Makefile:

./config –prefix=https://www.jb51.net/Users/xxx/Downloads/openssl-1.0.1e/.openssl no-shared no-threads

改成

复制代码 代码如下:


./Configure darwin64-x86_64-cc –prefix=https://www.jb51.net/Users/xxx/Downloads/openssl-1.0.1e/.openssl no-shared no-threads

再make
2,编译php
下载php源码和一些类库
zlib:
GD库:https://bitbucket.org/libgd/gd-libgd/downloads/libgd-2.1.0.tar.gz 不好下
freetype:
libpng:
libjpeg:

curl:

mhash:
mcrypt:
还有bzip2。 gettext 和libtool 在gnu官网,不过速度不行,其他的库我用了系统自带。懒得再折腾,到时候没啥补啥。
除了libtool直接扔在了/usr,其他我都装在了/usr/local的一个个单独目录里面。比如jpeg就是/usr/local/jpeg方便以后修改

复制代码 代码如下:

./configure –prefix=https://www.jb51.net/Users/saint/bin/php –enable-inline-optimization –enable-fpm –with-mcrypt=https://www.jb51.net/usr/local/libmcrypt –with-zlib –enable-mbstring –with-openssl –with-mysql –with-mysqli –with-mysql-sock –with-gd –with-jpeg-dir=https://www.jb51.net/usr/local/jpeg –enable-gd-native-ttf –enable-pdo –with-gettext –with-curl –with-pdo-mysql –enable-sockets –enable-bcmath –enable-xml –with-bz2=https://www.jb51.net/usr –enable-zip –enable-freetype –with-png-dir=https://www.jb51.net/usr/local/libpng –with-pcre-regex –with-iconv-dir=https://www.jb51.net/usr –with-gettext=https://www.jb51.net/usr/local/gettext

3.编译mariadb

编译mariabd需要先安装cmake。去下载安装tar zxf mariadb-5.5.32.tar.gz

cd mariadb-5.5.32 cmake . -DCMAKE_INSTALL_PREFIX=https://www.jb51.net/usr/local/mariadb \

-DMYSQL_UNIX_ADDR=https://www.jb51.net/tmp/mysql.sock \ -DMYSQL_DATADIR=https://www.jb51.net/data/mariadb \ -DSYSCONFDIR=https://www.jb51.net/usr/local/mariadb \ -DMYSQL_USER=mysql \ -DMYSQL_TCP_PORT=3306 \ -DWITH_XTRADB_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_EXTRA_CHARSETS=1 \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DEXTRA_CHARSETS=all \ -DWITH_BIG_TABLES=1 \ -DWITH_DEBUG=0

make && make install /bin/cp support-files/my-small.cnf /usr/local/mariadb/my.conf cp support-files/mysql.server /usr/local/mariadb/mysqld # my.cf

复制代码 代码如下:

cat > /etc/my.cnf << EOF [mysqld] basedir = /usr/local/mariadb datadir = /data/mariadb pid-file = /data/mariadb/mariadb.pid character-set-server = utf8 collation-server = utf8_general_ci user = mysql port = 3306 default_storage_engine = InnoDB innodb_file_per_table = 1 server_id = 1 log_bin = mysql-bin binlog_format = mixed expire_logs_days = 7 bind-address = 0.0.0.0 # name-resolve skip-name-resolve skip-host-cache #lower_case_table_names = 1 ft_min_word_len = 1 query_cache_size = 64M query_cache_type = 1 skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M # LOG log_error = /data/mariadb/mariadb-error.log long_query_time = 1 slow_query_log slow_query_log_file = /data/mariadb/mariadb-slow.log # Oher #max_connections = 1000 open_files_limit = 65535 [client] port = 3306 EOF /usr/local/mariadb/scripts/mysql_install_db --user=mysql --basedir=https://www.jb51.net/usr/local/mariadb --datadir=https://www.jb51.net/data/mariadb chown mysql.mysql -R /data/mariadb export PATH=$PATH:/usr/local/mariadb/bin echo 'export PATH=$PATH:/usr/local/mariadb/bin' >> /etc/profile
source /etc/profile

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/cc660c893b77de55362ab9fee410ac9c.html