偷个懒,用的系统自带的apache和php
apache安装与使用
-
Mac自带apache默认路径
- 主程序 /usr/sbin/httpd
- 模块 /usr/libexec/apache2
- 配置 /etc/apach2/
- 文件根目录 /Library/WebServer/Documents
- 日志 /private/var/log/apache2/
- CGI根目录 /Library/WebServer/CGI-Executables
- 私有配置 /private/etc/apach2
-
启动httpd
- 修改配置文件 /etc/apache2/httpd.conf,ServerName localhost:80
- 启动 sudo httpd -k start,sudo apachectl start
- 浏览器访问localhost,出现It works!
-
常用命令
- 查看模块 httpd -M
- 测试配置文件 httpd -t
-
配置默认站点
- 让apache确定网站文件夹所在位置 DocumentRoot
- 给文件夹起一个别名,方便用户用名字访问对于的网站 ServerName,端口可以在Listen单独配置
- 凡是涉及到apache配置文件的修改,需要重启apache才能生效
- DNS解析:通常默认站点都是本地DNS,hosts文件 /etc/hosts
配置apache加载php模块
- apache配置文件中加LoadModule php7_module
- httpd -t, httpd -M确认
- 重启apache httpd -k restart
- apache分配工作给php模块,如果是php代码,交给php处理
- 配置中加 AddType application/x-httpd-php .php
- 检查语法,重启apache
- 访问localhost/index.php
- 将php的配置文件加载到apache的配置文件中
- PHPIniDir ''/etc'
- 将etc/php.ini.default拷贝一份为/etc/php.ini
- 注意php.ini修改之后需要重启apache生效
mysql安装与配置
我是下载的tar包版本,解压之后的操作步骤如下
# 将文件夹移到/usr/local下
sudo mv mysql-8.0.13-macos10.14-x86_64/ /usr/local/mysql
# 修改用户用户组
sudo chown -R root:wheel /usr/local/mysql
# 初始化,注意记录临时root密码
/usr/local/mysql/bin/mysqld --initialize --user=mysql
# 测试启动,重启,停止,检查状态
cd /usr/local/mysql
sudo support-files/mysql.server start
sudo support-files/mysql.server restart
sudo support-files/mysql.server stop
sudo support-files/mysql.server status
# 修改root密码
mysqladmin -u root -p password root123
# 登录mysql
mysql -u root -p
# 输出密码
# 成功如下
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 12
Server version: 8.0.13 MySQL Community Server - GPL
#其他修改root密码的方式
# 用set password命令
mysql> set password for root@localhost = password('123');
# 直接UPDATE编辑user表
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;
# 修改PATH环境变量
PATH=$PATH:/usr/local/mysql/bin
MySQL访问
是C/S架构,通过客户端,或者通过一些扩展插件
php连接MySQL数据库
php本身不具备操作MySQL的能力,需要借助MySQL的扩展实现
- MAC自带的php7.1.19,已删除mysql扩展
- 去http://git.php.net/下载mysql扩展
- 下载对应版本php源码php-7.1.19.tar.gz,解压,进入对应的扩展目目录
$ phpize
grep: /usr/include/php/main/php.h: No such file or directory
grep: /usr/include/php/Zend/zend_modules.h: No such file or directory
grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:
---------------------
上面问题的解决办法
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/php /usr/include/php
如果sudo还是没有权限是因为rootless机制,锁定了/system、/sbin、/usr
重启之后Command+R,实用工具-Terminal-csrutil disable
$ phpize
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
这个问题用brew install autoconf即可
./configure
make
make test
sudo cp module/mysql.so /usr/lib/php/no-debug-non-zts-20160303
- 然后在/etc/php.ini中加入
extension=/usr/lib/php/extensions/no-debug-non-zts-20160303/mysql.so
- 重启apache,sudo apachectl start
- 再看phpinfo()就已经包含mysql了