php升级70
① 如何在CentOS 7.3上安装Apache,php 7.1和M6767ysql
1初步说明
在本教程中,我使用IP地址为192.168.1.100的hostname server1.example.com 。 这些设置可能会有所不同,因此您必须在适当的情况下更换它们。
我会在这里添加EPEL repo来安装最新的phpMyAdmin,如下所示:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
yum -y install epel-release
要在shell上编辑文件,我将安装nano编辑器。 如果您喜欢vi进行文件编辑,请跳过此步骤。
yum -y install nano
2安装MySQL / MariaDB
MariaDB是原始MySQL开发人员Monty Widenius的MySQL分支。 MariaDB与MySQL兼容,我选择使用MariaDB而不是MySQL。 运行此命令以安装MariaDB:
yum -y install mariadb-server mariadb
然后,我们为MySQL创建系统启动链接(以便每当系统启动时,MySQL自动启动)并启动MySQL服务器:
systemctl start mariadb.service
systemctl enable mariadb.service
设置MySQL根帐户的密码:
mysql_secure_installation
[root@server1 ~]# mysql_secure_installation
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not found
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): <--ENTER
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n]
New password: <--yourmariadbpassword
Re-enter new password: <--yourmariadbpassword
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
proction environment.
Remove anonymous users? [Y/n] <--ENTER
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] <--ENTER
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a proction environment.
Remove test database and access to it? [Y/n] <--ENTER
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] <--ENTER
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
[root@server1 ~]#
3安装Apache
CentOS 7附带apache 2.4。 Apache可以直接作为CentOS 7软件包使用,因此我们可以这样安装:
yum -y install httpd
这里是安装过程的截图。
现在配置您的系统启动Apache启动时...
systemctl start httpd.service
systemctl enable httpd.service
为了能够从外部访问Web服务器,我们必须打开防火墙中的HTTP(80)和HTTPS(443)端口。 CentOS上的默认防火墙是firewalld,可以使用firewalld-cmd命令配置。
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
现在将您的浏览器指向服务器的IP地址,在我的情况下为http://192.168.1.100 ,您应该看到Apache占位符页面:
4安装PHP
CentOS附带的PHP版本相当旧(PHP 5.4),因此,我将在此步骤中显示一些选项,从Remi存储库安装更新的PHP版本,如PHP 7.0或7.1。
添加Remi CentOS存储库。
rpm -Uvhhttp://rpms.remirepo.net/enterprise/remi-release-7.rpm
安装yum-utils,因为我们需要yum-config-manager实用程序。
yum -y install yum-utils
并运行yum更新
yum update
现在您必须选择要在服务器上使用哪个PHP版本。 如果你喜欢使用PHP 5.4,那么继续下一个命令。 要安装PHP 7.0,请遵循第4.1章和PHP 7.1中的命令,使用第4.2章。
要安装PHP 5.4,请运行以下命令:
yum -y installphp
4.1安装PHP 7.0(可选)
我们可以安装PHP 7.0和Apache PHP 7.0模块,如下所示:
yum-config-manager --enable remi-php70
yum -y installphp php-opcache
4.2安装PHP 7.1(可选)
如果要使用PHP 7.1,请使用:
yum-config-manager --enable remi-php71
yum -y installphp php-opcache
在这个例子中,在可下载的虚拟机中,我将使用PHP 7.1。
我们必须重新启动Apache来应用更改:
systemctl restart httpd.service
5测试PHP /获取有关您的PHP安装的详细信息
默认网站的文档根目录是/ var / www / html。 我们将在该目录中创建一个小型的PHP文件(info.php),并在浏览器中调用它来测试PHP安装。 该文件将显示有关我们的PHP安装的许多有用的细节,例如安装的PHP版本。
nano /var/www/html/info.php
<?php
phpinfo();?>
现在我们在浏览器中调用该文件(例如http://192.168.1.100/info.php ):
如您所见,PHP 7.1正在工作,它正在通过Apache 2.0处理程序,如Server API行所示。 如果您进一步向下滚动,您将看到在PHP中已启用的所有模块。 MySQL没有列出,这意味着我们还没有在PHP中支持MySQL。
6在PHP中获取MySQL支持
要在PHP中获得MySQL支持,我们可以安装php71w-mysql包。 安装一些其他PHP模块是一个好主意,也可能需要它们用于应用程序。 您可以搜索可用的PHP5模块,如下所示:
yum search php
选择您需要的并安装它们:
yum -y install php-mysql
在下一步中,我将安装一些常见的PHP模块,CMS系统如Wordpress,Joomla和Drupal所需:
yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstringphp-soap curl curl-devel
现在重新启动Apache Web服务器:
systemctl restart httpd.service
现在在您的浏览器中重新加载http://192.168.1.100/info.php并再次向下滚动到模块部分。 你现在应该找到很多新的模块,如Curl等。
如果您不再需要php信息输出,那么为了安全起见,请删除该文件。
rm/var/www/html/info.php
7 phpMyAdmin安装
phpMyAdmin是一个Web界面,您可以通过它来管理MySQL数据库。
phpMyAdmin现在可以安装如下:
yum -y install phpMyAdmin
现在我们配置phpMyAdmin。 我们更改Apache配置,以便phpMyAdmin不仅允许从localhost进行连接(通过注释<RequireAny>节并添加“要求所有已授予”行):
nano /etc/httpd/conf.d/phpMyAdmin.conf
[...]
Alias /phpMyAdmin /usr/share/phpMyAdminAlias /phpmyadmin /usr/share/phpMyAdmin<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
<IfMole mod_authz_core.c>
# Apache 2.4
# <RequireAny>
# Require ip 127.0.0.1
# Require ip ::1
# </RequireAny>
Require all granted
</IfMole>
<IfMole !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfMole>
</Directory>
<Directory /usr/share/phpMyAdmin/>
Options none AllowOverride Limit
Require all granted</Directory>
[...]
接下来,我们将phpMyAdmin中的身份验证从cookie更改为http :
nano /etc/phpMyAdmin/config.inc.php
[...]$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)?[...]
重新启动Apache:
systemctl restart httpd.service
之后,您可以访问http://192.168.1.100/phpmyadmin/下的phpMyAdmin :
8作为虚拟机下载
此设置可用于以ova / ovf格式(与VMWare和Virtualbox兼容)的虚拟机下载,以了解用户的身份。
VM的登录详细信息
Linux root密码是:howtoing。
Rhe MySQL的root密码是:howtoing
虚拟机的IP地址为192.168.1.100
请在第一次登录时更改两个密码。
② PHP单独添加扩展 无需重启服务器
问题
php自身提供了很多扩展,比如curl,gmp, mbstring等等。我们在编译安装php时未必安装了所有扩展。那么在安装完php后,如果想单独安装某个php自身的扩展怎么办呢?
我们以curl扩展模块的安装为例说明如何单独添加扩展。
步骤
1.进入php源码的扩展目录。本例中我的源码对应目录如下:
/search/src/php-7.0.14/ext
1
2.进入模块目录,我们安装的是curl扩展,所以进入curl目录。此时,我们所在的目录是
/search/src/php-7.0.14/ext/curl
1
3.执行phpize。注意,如果你的机器上有多个php版本,一定要执行你准备安装扩展的php版本对应的phpize。比如,我的机器上同时有php7和php5.3.3。我当前准备为php7安装curl扩展。所以执行php7对应的phpize
1 /usr/local/php70/bin/phpize
2
3 结果类似:
4 Configuring for:
5 PHP Api Version: 20151012
6 Zend Mole Api No: 20151012
7 Zend Extension Api No: 320151012
4.执行
./configure --with-php-config=/usr/local/php70/bin/php-config
1
说明:如果你的机器上只有一个php版本,大多时候不需要特别使用–with-php-config指明相应的php-config所在位置。
5.执行make,之后会在./moles/目录下生成curl.so文件
6.执行make install
结果类似:
Installing shared extensions: /usr/local/php70/lib/php/20151012/
1
2
执行结果告诉你将curl.so安装到了哪个目录。
一般情况,如果你正确的指定了php-config或者你的机器只有一个php版本,so都会被正确安装到相应php的extension_dir。如果执行make install后,extension_dir目录下没有相应的so,可以手动将第5步中生成的so文件cp过去。
要查看具体extension_dir,可以执行如下命令。
php -i| grep extension_dir
结果类似
extension_dir => /usr/local/php70/lib/php/20151012/ => /usr/local/php70/lib/php/20151012/
1
2
3
7.在php.ini中增加
extension=curl.so
1
如果不知道php.ini的具体位置,可以通过如下命令查看
php --ini
1
8.执行如下命令,查看是否安装成功
php -m | grep curl
1
如果你看到了curl, 恭喜你,安装成功!
③ 群晖系统上如何切换PHP版本
亲戚啊,你解决了没,具体咋解决的,我遇到的问题和你一模一样分毫不差啊。
楼上的'小子你欠虐'老弟,群晖的php56,php70,php72 php73的安装位置下面找遍了也没有bin这个目录,所以这个环境变量折腾了好久也没正确添加,即使删掉php5.6也不行,php-v依旧显示版本是php 5.6.11
④ php程序员怎么达到不同等级
成为一名优秀的PHP程序员,该如何做呢?应该具有什么样的技能,才算得上PHP程序员?你的技术又是在什么水平级别上?本文将列出一些作为一名PHP程序员应该了解的事情。
MySQL能力罩迅
在开发上的应用基于几个能力体现:
(1)了解:知道用PHP连接数据库;懂得写一些简单的SQL;建一些简单的索引;懂得用工具简单操作一下数据库(增删改库表结构数据等等)。
(2)熟悉:懂得在开发应用上设计数据库,建立一些有效的索引,用explain分析SQL性能,压力测试等等。
(3)很熟悉:深入了解数据库索引、存储引擎原理以及运行机制,能有效地构建高性能可扩展的数据库结构/架构,有效地优化数据库性能配置并加以调试,分析数据库运行状态。
(4)精通:简单地说具备以上所有能力的同时,有多年高负载分布式环境下的优化管理经验。
据观察以及交往经验,70%的PHPer处在了解阶段,25%处于熟悉阶段,>4%很熟悉,精通的人基本就不是PHPer了。
◆70%这个群体最容易忽视MySQL,以为MySQL只是简单的存储媒介,没有优化意识,认为加个内存、CPU就能解决问题。
典型事件:join、order by、group by等语句性能一塌糊涂,数据库根本没有设计(仅限于拆成一个主表,N个附表等),搞不清字段类型及作用,碰到大表的复杂查询就没辙。
◆20%这个群体的人只是MySQL运行机制理解不透物态此彻,对影响MySQL性能的关健因素把握不明确,不熟练。
典型事件:熟读手册,但说不清索引原理,不知道二叉树、HASH等算法对于数据库的作用
◆4%的群体已经基本可以胜任DBA的职能。
OOP能力
(1)了解:了解变量的作用域、类型,及其意义,了解继承机制等,懂得复用、封装概念。
(2)熟悉:熟练应用接口、抽象等技术混合开发程序,并理解其中含义,一般研究过Java。
(3)很熟悉:有过OOP架构设计经验,熟悉设计模式、UML,熟悉PHP对象运行机制,内容管理等。
(4)精通:应该是架构师级别了,不限于PHP。
经常我们会碰到一些自称熟悉OOP却连public、private、protected、static都解释不清的人,是肯定没有经历过正规的OOP项目。
大型网站经验
(1)了解:熟悉闭辩PHP开发下的缓存应用(Memcache、APC等);接触过LVS、SQUID应用;有一定的Session处理方案;熟悉负载均衡;熟悉PHP数据连接池应用;了解PHP编程性能优化。
(2)熟悉:掌握分布式缓存及缓存性能优化、熟悉存储系统、文件系统、数据库,开发可扩展平台。能结合负载均衡合理布置流量,对PHP运行性能进行监控与分析。
(3)非常熟悉:具备系统分析师能力,已经超出PHPer环节;
(4)精通。
DOM开发能力