• 整理mac上的php环境


    重装了一下mb,重新编译环境太麻烦了,所以整理一下mac系统自带php环境用:

    OS X yosemite 10.10.5  自带apache,php

    1,让apache启用php模块

    sudo vi /private/etc/apache2/httpd.conf

    找到

    LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so #虚拟主机模块

    LoadModule rewrite_module libexec/apache2/mod_rewrite.so  #伪静态重写模块

    LoadModule php5_module libexec/apache2/libphp5.so #php模块

    <Directory />

        AllowOverride All

        Require all granted

    </Directory>

    #打开php错误提示

    :/ Error handling and logging

    error_reporting = E_ALL | E_STRICT

     display_errors = On

    !!重启apache

    停止服务:sudo /usr/sbin/apachectl stop

    开启服务:sudo /usr/sbin/apachectl start

    重启服务:sudo /usr/sbin/apachectl restart

    这时浏览器访问http://localhost  就会出现默认It's work的页面了。

    2,安装mysql数据库

    百度mysql dmg

    http://dev.mysql.com/downloads/mysql/

    下载最新mysql-5.7.11-osx10.10-x86_64.dmg

    双击安装后,会在系统偏好设置中看到开启关闭按钮,具体参考我的另一篇文章http://www.cnblogs.com/findgor/p/4886652.html

    sudo mysql -uroot -p

    如果出现下面错误:

    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    参考这篇博客:http://blog.csdn.net/qq160816/article/details/7722680

    Connection failed: SQLSTATE[HY000] [2002] No such file or directory

    php.ini

    mysql.default_socket = /tmp/mysql.sock
    pdo_mysql.default_socket= /tmp/mysql.sock
    mysqli.default_socket =/tmp/mysql.sock

    http://www.bitscn.com/pdb/php/201412/425793.html

    我使用的是第一种的非安全模式。

    先在偏好设置中,把mysql关闭

    sudo su  #这点很重要,如果你直接直接 sudo 命令 ,在下一步操作中,mysql是不会restart的,你就链接不上的。

    cd /usr/local/mysql/bin/

    ./mysqld_safe --skip-grant-tables &  #去除校验,执行完这句之后 ,mysql会自动启动

    重新再打开一个终端窗口

    mysql -uroot

    这时已经进来了,那么我们创建一个用户

    mysql>UPDATE mysql.user SET password=PASSWORD('findgor') WHERE User='root'  #必须单引号,mysql5.7以下用这个命令

    mysql> FLUSH PRIVILEGES; #刷新权限才能生效

    然而日了狗,告诉我没有Password字段,desc user 发现确实没有密码字段,mysql5.7是改成authentication_string,参考:http://xiaorui.cc/2016/01/20/mac下安装mysql5-7遇到默认密码的大坑/

    mysql> update mysql.user set authentication_string=PASSWORD(’findgor′) where user=’root’;

    !!再刷新权限

     这时杀死原先的mysql进程,当然重启mac也行

    mysql  -uroot -pfindgor

    登陆成功!

    在php中使用pdo链接数据库报错2002,参考文章:http://www.jb51.net/article/58520.htm

    3,虚拟主机

    在上面httpd.conf已经加载了vhost模块了,现在来配置虚拟主机

    添加host

    sudo vi  /private/etc/hosts

    127.0.0.1       test.com

    sudo vi /private/etc/apache2/extra/httpd-vhosts.conf

    #本地

    <VirtualHost *:80>

        DocumentRoot "/Users/lixianghui/www"

        ServerName localhost

        ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log"

        CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log" common

    </VirtualHost>

    #test.com 

    <VirtualHost *:80>

        DocumentRoot "/Users/lixianghui/www/test.com"

        ServerName test.com

        ErrorLog "/private/var/log/apache2/test-host.example.com-error_log"

        CustomLog "/private/var/log/apache2/test-host.example.com-access_log" common

    </VirtualHost>

    重启apache

    4,安装扩展库

    #执行pear

    sudo php /usr/lib/php install-pear-nozlib.phar

    #检测gcc编译器,没有安装的话会自动弹出下载xcode环境

    gcc -v

    #安装homebrew

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    #安装autoconf库,很重要,没有它很多扩展都安装不了

    brew install autoconf

    brew install pcre

    #安装扩展

    sudo pecl swoole

    sudo pecl redis

    sudo pecl memcache

    #加入php.ini

    cd /etc

    sudo cp php.ini.default php.ini

    #检查是否加载

    php --ini

    #加载php扩展库

    vi  php.ini 

    extension=redis.so

    extension=swoole.so

    extension=memcache.so

    wq!

    5,opcache提升性能

    参考鸟哥的博客:

     http://www.laruence.com/2015/12/04/3086.html

    6,升级到10.10,发现缺少gd库缺少freetype等库,影响验证码功能

    参考:http://yangjunwei.com/a/1570.html

    http://www.piaoyi.org/php/Mac-brew-php.html

    坑爹的环境,缺少很多库,需要补,另起一篇文章

  • 相关阅读:
    Django框架11 /form组件、modelForm组件
    Django框架10 /sweetalert插件、django事务和锁、中间件、django请求生命周期
    Django框架09 /ajax、crsf、settings导入
    Django框架08 /聚合查询、分组、F/Q查询、原生sql相关
    (转)JVM中的OopMap(zz)
    mysql limit 性能问题分析
    NoClassDefFoundError && ClassNotFoundException
    定点分析: MySQL InnoDB是如何保证系统异常断电情况下的数据可靠性?
    java GC 算法
    IDEA在线注册方法
  • 原文地址:https://www.cnblogs.com/findgor/p/5279487.html
Copyright © 2020-2023  润新知