Ubuntu 16.04 PHP5.6
安装 Apache + PHP 5.6 + mysql 5.5
系统: Ubuntu 16.04
- 替换源
sudo cp /etc/apt/sources.list /etc/apt/source.list_baksudo vim /etc/apt/sources.list
阿里源:
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricteddeb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial main restricteddeb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricteddeb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial universedeb http://mirrors.aliyun.com/ubuntu/ xenial-updates universedeb http://mirrors.aliyun.com/ubuntu/ xenial multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-propertiesdeb http://archive.canonical.com/ubuntu xenial partnerdeb-src http://archive.canonical.com/ubuntu xenial partnerdeb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricteddeb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial-security universedeb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
- 安装 apache2
sudo apt-get install apache2
- 安装 php 5.6
sudo apt-get install python-software-propertiessudo apt-get install software-properties-commonsudo apt-get updatesudo add-apt-repository ppa:ondrej/phpsudo apt-get updatesudo apt-get -y install libapache2-mod-php5.6 php5.6 php5.6-mcrypt php5.6-mbstring php5.6-curl php5.6-cli php5.6-mysql php5.6-gd php5.6-intl php5.6-xsl php5.6-zip
国内安装时可能会比较慢,需要耐心的等待
- 安装mysql-client,mysql-server
如果安装 mysql 5.7,可直接使用以下命令进行安装
sudo apt-get install mysql-server mysql-client
安装过程中,会跳出 输入mysql root
用户的密码的界面
我尝试安装的是mysql 5.5.31 版本
4.1. 进入/tmp
目录,下载mysql 5.5.31
cd /tmpwget https://cdn.mysql.com/archives/mysql-5.5/mysql-5.5.31-linux2.6-x86_64.tar.gz
4.2. 添加用户组
sudo groupadd mysql sudo useradd -r -g mysql mysql
4.3. 将压缩包文件mysql-5.5.31-linux2.6-x86_64.tar.gz
解压到/usr/local
文件夹下
sudo tar zxvf ./mysql-5.5.31-linux2.6-x86_64.tar.gz -C /usr/local
4.4. 将文件夹名称mysql-5.5.31-linux2.6-x86_64
重命名为mysql
cd /usr/localsudo mv mysql-5.5.31-linux2.6-x86_64 mysql
4.5. 设定 mysql 文件夹的拥有者和用户组
cd mysqlsudo chown -R mysql:mysql *
4.6. 安装依赖包(5.6版本也适用)
sudo apt-get install libaio1
4.7. 执行mysql安装脚本
sudo scripts/mysql_install_db --user=mysql
执行之后是
vagrant@vagrant:/usr/local/mysql$ sudo scripts/mysql_install_db --user=mysqlInstalling MySQL system tables...OKFilling help tables...OKTo start mysqld at boot time you have to copysupport-files/mysql.server to the right place for your systemPLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !To do so, start the server, then issue the following commands:./bin/mysqladmin -u root password 'new-password'./bin/mysqladmin -u root -h vagrant password 'new-password'Alternatively you can run:./bin/mysql_secure_installationwhich will also give you the option of removing the testdatabases and anonymous user created by default. This isstrongly recommended for production servers.See the manual for more instructions.You can start the MySQL daemon with:cd . ; ./bin/mysqld_safe &You can test the MySQL daemon with mysql-test-run.plcd ./mysql-test ; perl mysql-test-run.plPlease report any problems with the ./bin/mysqlbug script!
4.8. 设置mysql
文件夹内的文件拥有者和 mysql 文件夹目录的拥有者一样
sudo chown -R root .
4.9. 设置data
文件夹的拥有者和里面文件的文件夹拥有者一样
sudo chown -R mysql data
4.10. 复制 mysql的配置文件
sudo cp support-files/my-medium.cnf /etc/my.cnf #mysql 5.5sudo cp support-files/my-default.cnf /etc/my.cnf #mysl 5.6
4.11. 启动mysql
sudo cp support-files/mysql.server /etc/init.d/mysql.serversudo bin/mysqld_safe --user=mysql &
4.12. 初始化 root 用户的密码
sudo bin/mysqladmin -u root password '[your new password]'
如:
sudo bin/mysqladmin -u root password 'secret'
4.13. 设置mysql命令的软连接
sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
4.14. 停止mysqld_safe 或者直接重启(忽略本小节的命令)
停止刚才的 mysqld_safe
sudo ps -ef|grep mysql
sudo kill -9 26837sudo kill -9 27090
4.15 设置mysql开机自启动
sudo update-rc.d -f mysql.server defaults
如果不想mysql开机自启动(可选)
sudo update-rc.d -f mysql.server remove
4.16. 启动mysql
sudo /etc/init.d/mysql.server start #sudo service mysql start
4.17 停止mysql
sudo /etc/init.d/mysql.server stop #sudo service mysql stop
4.18 查看 mysql 运行状态
sudo /etc/init.d/mysql.server status #sudo service mysql status
- 设置 mysql的 sql_model
编辑 /etc/mysql.cnf
,在文件内容的末尾添加
[mysqld]sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONmax_allowed_packet=100M
注: 如果需要 mysql中的 date 和datetime可以为 0000-00-00 00:00:00
的格式的话,需要将上面的 NO_ZERO_IN_DATE,NO_ZERO_DATE
移除掉
避免出现 #3065 - Expression #1 of ORDER BY clause is not in SELECT list
这样的错误提示
新建的用户,如果遇到无法登入的情况,如登入时,提示ERROR 1045 (28000): Access denied for user
,可能是密码输入不正确,通过重新修改这个用户的密码的方式进行处理
先使用root用户登入入到mysql命令行中;
mysql -u root -p #回车之后,输入root用户的密码update mysql.user set password=PASSWORD('root') where User='root'; # mysql 5.5以前版本UPDATE mysql.user SET authentication_string=PASSWORD('root') WHERE USER='root'; # mysql 5.6以后的命令FLUSH PRIVILEGES; #刷新数据库。quit; #退出
Reference
- 学习到如何在mysql官网中找旧版本的mysql进行下载
- 参考安装mysql 5.5
- 参考安装mysql 5.5