在Mac OS上編譯安裝Nginx+PHP+MariaDB開發(fā)環(huán)境的教程
因?yàn)榧坠俏牡哪蛐?。mariadb應(yīng)該要頂替mysql了。所以拋棄mysql
1,編譯nginx
分別下載nginx,openssl,pcre
編譯openssl的時(shí)候會(huì)提示
WARNING! If you wish to build 64-bit library, then you have to invoke ‘./Configure darwin64-x86_64-cc' *manually*.
如果你不停止編譯就會(huì)出錯(cuò)。這個(gè)問題應(yīng)該是 openssl/config腳本猜對(duì)你的系統(tǒng)是64位,但是 會(huì)根據(jù)$KERNEL_BITS來判斷是否開啟x86_64編譯,默認(rèn) 是不開啟的(很奇怪的設(shè)置,雖然會(huì)給你5秒時(shí)間停止編譯并手動(dòng)開啟),所以你生成的openssl庫文件是32位的,最后靜態(tài)鏈接到nginx會(huì)出錯(cuò)。目前看來沒有很好的方法把x86_64的參數(shù)傳到openssl配置文件中 (openssl/config 猜測os架構(gòu),設(shè)置編譯的參數(shù)是32位還是64位,默認(rèn)是32位,然后調(diào)用openssl/Configure生成Makefile)
可以在configure之前export KERNEL_BITS=64,如果還是不起作用
就要手到修改了
進(jìn)入nginx目錄
$ ./configure ./configure –prefix=/usr/locale/nginx –with-openssl=../openssl-1.0.1i –with-pcre=../pcre-8.33
手動(dòng)修改 objs/Makefile:
./config –prefix=/Users/xxx/Downloads/openssl-1.0.1e/.openssl no-shared no-threads
改成
./Configure darwin64-x86_64-cc –prefix=/Users/xxx/Downloads/openssl-1.0.1e/.openssl no-shared no-threads
再make
2,編譯php
下載php源碼和一些類庫
zlib:http://www.zlib.net/
GD庫:https://bitbucket.org/libgd/gd-libgd/downloads/libgd-2.1.0.tar.gz 不好下
freetype:http://sourceforge.net/projects/freetype/
libpng:http://www.libpng.org/pub/png/libpng.html
libjpeg:http://www.ijg.org/
curl: http://curl.haxx.se/download.html
mhash: http://sourceforge.net/projects/mhash/
mcrypt: http://mcrypt.hellug.gr/
還有bzip2。 gettext 和libtool 在gnu官網(wǎng),不過速度不行,其他的庫我用了系統(tǒng)自帶。懶得再折騰,到時(shí)候沒啥補(bǔ)啥。
除了libtool直接扔在了/usr,其他我都裝在了/usr/local的一個(gè)個(gè)單獨(dú)目錄里面。比如jpeg就是/usr/local/jpeg方便以后修改
./configure –prefix=/Users/saint/bin/php –enable-inline-optimization –enable-fpm –with-mcrypt=/usr/local/libmcrypt –with-zlib –enable-mbstring –with-openssl –with-mysql –with-mysqli –with-mysql-sock –with-gd –with-jpeg-dir=/usr/local/jpeg –enable-gd-native-ttf –enable-pdo –with-gettext –with-curl –with-pdo-mysql –enable-sockets –enable-bcmath –enable-xml –with-bz2=/usr –enable-zip –enable-freetype –with-png-dir=/usr/local/libpng –with-pcre-regex –with-iconv-dir=/usr –with-gettext=/usr/local/gettext
3.編譯mariadb
編譯mariabd需要先安裝cmake。去www.cmake.org下載安裝tar zxf mariadb-5.5.32.tar.gz
cd mariadb-5.5.32 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DMYSQL_DATADIR=/data/mariadb \ -DSYSCONFDIR=/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=/usr/local/mariadb --datadir=/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
/usr/local/mariadb/bin/mysql -e “grant all privileges on *.* to root@'127.0.0.1′ identified by “dbrootpwd” with grant option;” /usr/local/mariadb/bin/mysql -e “grant all privileges on *.* to root@'localhost' identified by “dbrootpwd” with grant option;” /usr/local/mariadb/bin/mysql -uroot -pdbrootpwd -e “delete from mysql.user where Password=”;” /usr/local/mariadb/bin/mysql -uroot -pdbrootpwd -e “delete from mysql.db where User=”;” /usr/local/mariadb/bin/mysql -uroot -pdbrootpwd -e “drop database test;”
4.后續(xù)安裝擴(kuò)展
php提供了一個(gè)phpize工具供我們安裝需要的擴(kuò)展。
下面介紹phpize的使用:
(1).找到自己原來編譯的php安裝目錄,例如我的目錄是/home/saint/Development/php,在該目錄下,找到bin/phpize。如果沒有這個(gè)工具,則說明沒有安裝該工具,那么需要安裝php.dev,一般都會(huì)有這個(gè)工具。
(2).要擴(kuò)展的話,就需要有一個(gè)和當(dāng)前已安裝的php的版本一樣的php的源包,當(dāng)前php版本可以用過phpinfo()查看。
(3).打開源包目錄,進(jìn)入到ext目錄,例如我就進(jìn)入到:/home/saint/Development/php-5.5.6/ext下,ext下有各個(gè)php帶有的擴(kuò)展模塊,進(jìn)入到ext/sockets中。
(4).cd到ext/sockets后,運(yùn)行phpize程序:
/home/saint/Development/php/bin/phpize
執(zhí)行后,可以看到phpize會(huì)幫我們生成了對(duì)應(yīng)的configure文件
(5).通過configure來配置,執(zhí)行下面的命令:
./configure --enable-sockets --with-php-config=/home/saint/Development/php/bin/php-config make make install
注: php-config文件與phpize是同一個(gè)目錄下的
(6).更改php.ini,增加下面的語句:
extension=”/home/saint/Development/php/lib/php/extensions/no-debug-non-zts-20121226/sockets.so”
覺得難看可以將那個(gè)日期文件夾刪除
(7).重啟Nginx
- Mac環(huán)境Nginx配置和訪問本地靜態(tài)資源的實(shí)現(xiàn)
- Nginx在MAC上的安裝、啟動(dòng)、重啟和關(guān)閉
- Mac中使用Nginx實(shí)現(xiàn)80端口轉(zhuǎn)發(fā)8080端口
- Mac下Nginx安裝環(huán)境配置詳解
- 詳解Asp.Net Core 發(fā)布和部署( MacOS + Linux + Nginx )
- 在Mac OS上搭建Nginx+PHP+MySQL開發(fā)環(huán)境的教程
- mac 下 安裝nginx的方法小結(jié)
- mac下安裝nginx和php
- Mac使用Nginx設(shè)置代理并禁用自帶Apache的問題記錄
相關(guān)文章
ThinkPHP實(shí)現(xiàn)靜態(tài)緩存和動(dòng)態(tài)緩存示例代碼
本篇文章主要介紹了ThinkPHP實(shí)現(xiàn)靜態(tài)緩存和動(dòng)態(tài)緩存示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05ThinkPHP 5 AJAX跨域請(qǐng)求頭設(shè)置實(shí)現(xiàn)過程解析
這篇文章主要介紹了ThinkPHP 5 AJAX跨域請(qǐng)求頭設(shè)置實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10支付寶接口開發(fā)集成支付環(huán)境小結(jié)
本文主要給大家分享的是在做支付寶接口開發(fā)集成支付環(huán)境的全過程,非常的詳細(xì),搭配示例代碼,是篇非常不錯(cuò)的文章,這里推薦給大家,有需要的小伙伴參考下。2015-03-03LaravelS通過Swoole加速Laravel/Lumen詳解
這篇文章主要給大家介紹了關(guān)于LaravelS通過Swoole加速Laravel/Lumen的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-03-03thinkPHP通用控制器實(shí)現(xiàn)方法示例
這篇文章主要介紹了thinkPHP通用控制器實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了thinkPHP針對(duì)數(shù)據(jù)庫的基本CURD操作方法的封裝實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-11-11一個(gè)簡單安全的PHP驗(yàn)證碼類、PHP驗(yàn)證碼
這篇文章主要介紹了一個(gè)簡單安全的PHP驗(yàn)證碼類 PHP驗(yàn)證碼的相關(guān)資料,需要的朋友可以參考下2016-09-09Laravel 5框架學(xué)習(xí)之Eloquent 關(guān)系
Eloquent是Laravel的原始ActiveRecord是實(shí)現(xiàn)的,建立在Laravel的Fluent Query Builder之上的,所以Eloquent類和Fluent類是一樣的,能實(shí)現(xiàn)復(fù)雜的SQL語句和非常直觀表達(dá)出的表與表之間的關(guān)系2015-04-04Symfony2獲取web目錄絕對(duì)路徑、相對(duì)路徑、網(wǎng)址的方法
這篇文章主要介紹了Symfony2獲取web目錄絕對(duì)路徑、相對(duì)路徑、網(wǎng)址的方法,結(jié)合實(shí)例形式分析了Symfony獲取路徑與網(wǎng)址的常用操作技巧,并給出了Request完整文件的源碼供大家下載參考,需要的朋友可以參考下2016-11-11