在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程_php实例
因为甲骨文的尿性。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=/usr/locale/nginx –with-openssl=../openssl-1.0.1i –with-pcre=../pcre-8.33
手动修改 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官网,不过速度不行,其他的库我用了系统自带。懒得再折腾,到时候没啥补啥。
除了libtool直接扔在了/usr,其他我都装在了/usr/local的一个个单独目录里面。比如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.后续安装扩展
php提供了一个phpize工具供我们安装需要的扩展。
下面介绍phpize的使用:
(1).找到自己原来编译的php安装目录,例如我的目录是/home/saint/Development/php,在该目录下,找到bin/phpize。如果没有这个工具,则说明没有安装该工具,那么需要安装php.dev,一般都会有这个工具。
(2).要扩展的话,就需要有一个和当前已安装的php的版本一样的php的源包,当前php版本可以用过phpinfo()查看。
(3).打开源包目录,进入到ext目录,例如我就进入到:/home/saint/Development/php-5.5.6/ext下,ext下有各个php带有的扩展模块,进入到ext/sockets中。
(4).cd到ext/sockets后,运行phpize程序:
/home/saint/Development/php/bin/phpize
执行后,可以看到phpize会帮我们生成了对应的configure文件
(5).通过configure来配置,执行下面的命令:
./configure --enable-sockets --with-php-config=/home/saint/Development/php/bin/php-config make make install
注: php-config文件与phpize是同一个目录下的
(6).更改php.ini,增加下面的语句:
extension=”/home/saint/Development/php/lib/php/extensions/no-debug-non-zts-20121226/sockets.so”
觉得难看可以将那个日期文件夹删除
(7).重启Nginx

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP用于构建动态网站,其核心功能包括:1.生成动态内容,通过与数据库对接实时生成网页;2.处理用户交互和表单提交,验证输入并响应操作;3.管理会话和用户认证,提供个性化体验;4.优化性能和遵循最佳实践,提升网站效率和安全性。

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。

PHP主要是过程式编程,但也支持面向对象编程(OOP);Python支持多种范式,包括OOP、函数式和过程式编程。PHP适合web开发,Python适用于多种应用,如数据分析和机器学习。

PHP在数据库操作和服务器端逻辑处理中使用MySQLi和PDO扩展进行数据库交互,并通过会话管理等功能处理服务器端逻辑。1)使用MySQLi或PDO连接数据库,执行SQL查询。2)通过会话管理等功能处理HTTP请求和用户状态。3)使用事务确保数据库操作的原子性。4)防止SQL注入,使用异常处理和关闭连接来调试。5)通过索引和缓存优化性能,编写可读性高的代码并进行错误处理。

PHP适合网页开发和快速原型开发,Python适用于数据科学和机器学习。1.PHP用于动态网页开发,语法简单,适合快速开发。2.Python语法简洁,适用于多领域,库生态系统强大。

PHP的核心优势包括易于学习、强大的web开发支持、丰富的库和框架、高性能和可扩展性、跨平台兼容性以及成本效益高。1)易于学习和使用,适合初学者;2)与web服务器集成好,支持多种数据库;3)拥有如Laravel等强大框架;4)通过优化可实现高性能;5)支持多种操作系统;6)开源,降低开发成本。

如何在 Windows 中配置 Nginx?安装 Nginx 并创建虚拟主机配置。修改主配置文件并包含虚拟主机配置。启动或重新加载 Nginx。测试配置并查看网站。选择性启用 SSL 并配置 SSL 证书。选择性设置防火墙允许 80 和 443 端口流量。

PHP起源于1994年,由RasmusLerdorf开发,最初用于跟踪网站访问者,逐渐演变为服务器端脚本语言,广泛应用于网页开发。Python由GuidovanRossum于1980年代末开发,1991年首次发布,强调代码可读性和简洁性,适用于科学计算、数据分析等领域。
