我见过ubuntu的这个教程. http://thereluctantdeveloper.com/2015/12/quick-and-dirty-php-70-set-up-on-ubuntu-1404-with-apcu
一步之后我不清楚(git clone).我需要apcu扩展我的应用程序才能更快地执行.请指导在debian上安装php 7的apcu扩展.
希望有人在这里知道一件事或两件事.
简短的问题
我在命令行上使用phpdoc遇到错误,在PHP 7.0.2上通过pear安装.错误是:
#> phpdoc
PHP Fatal error: Uncaught Doctrine\Common\Annotations\AnnotationException:
You have to enable opcache.load_comments=1 or zend_optimizerplus.load_comments=1.
in /usr/local/php5-7.0.2-20160108-102134/lib/php/phpDocumentor/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php:193
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?
细节
Opcache已启用并opcache.load_comments=1位于我的opcache.ini文件中,分别使用命令:php -i | grep "Opcode"和验证php -i | grep "opcache".在该.ini文件中,我可以通过检查启用并通过该文件禁用opcache来验证是否加载了更改.
话虽如此,如果我opcache.load_comments=1在我的.ini文件中,为什么我仍然会收到此错误?
谢谢!
我有一个项目~4岁,我从5.3和Symfony 2.0开始,迁移到5.5和S2.3.目前我迁移到S2.8,我想迁移到php 7.
由于围绕PHP 7性能有很多堆,我很想在dev env中测试我的项目性能.
所以在开发环境中运行基准测试; 服务是在流浪的主机上同时拥有php5-fpm和php7.0-fpm,关闭一个并设置另一个.
我预计会PHP7 PHP5跑赢大市,但基本上它似乎PHP7 慢1.5-2倍于我的本地开发ENV.
我究竟做错了什么?或者我应该以某种方式重写我的应用程序?
phpinfo:php 7 http://pastebin.com/a6a76vE2 php 5 http://pastebin.com/4GBXNmBB
PS是的,我知道在本地开发环境中运行基准测试不是100%有效和纯粹,但我只需要了解php7是否比php5更快,正如它所说的那样.
U1
最有趣的是,blackfire清楚地表明php 7比php 5快〜45%.但是当我在进行围攻时,我看到性能会下降.
U2
这或多或少是我对dev env的自定义配置.对于php5.5和php7来说是一样的:
[Date]
date.timezone = Europe/Tallinn
[PHP]
memory_limit = 512M
expose_php = Off
cgi.fix_pathinfo = 0
post_max_size = 10M
upload_max_filesize = 10M
max_execution_time = 60
realpath_cache_size = 4096k
realpath_cache_ttl = 7200
error_reporting = E_ALL | E_STRICT
log_errors = On
error_log = /var/log/php.errors.log
display_errors = On
display_startup_errors = On
html_errors = On
; xdebug
xdebug.remote_enable = …Run Code Online (Sandbox Code Playgroud) 但是当我尝试运行基于Laravel的项目时,会出现如下错误
需要Mcrypt PHP扩展.
我试图找到mcrypt.so并更改mycrpt.ini中的路径但我仍然得到相同的错误我只得到这个错误我Laravel项目
在我的实体类中,我已经为setter和getter的返回类型定义了所有预期的参数类型.稍后,当我有一个使用所述类的表单时,如果表单中的某些字段为空,则会出现错误,因为表单组件尝试将null传递给setter而不是string.
我提交表单时收到以下异常:
给出的字符串"string","NULL"的预期参数
500内部服务器错误 - InvalidArgumentException
抛出异常 vendor/symfony/symfony/src/Symfony/Component/PropertyAccess/PropertyAccessor.php at line 254
有没有办法将"null"值转换为空字符串,然后再将其传递给对象,让验证者争论呢?
我注意到,自从我升级到PHP7后,一些SQL语句不再有效,而是内存不足.
我有这个代码:
$query = Yii::$app->db->createCommand('select * from tbl_title')->query();
while ($row = $reader->read()) {
var_dump($row);
exit();
}
Run Code Online (Sandbox Code Playgroud)
Yii2的数据库抽象只是PDO上的一个非常薄的层,并没有做任何额外的事情.query()除了在日志文件(Yii2)中添加一行以进行性能分析并reader->read()只调用PDO流的fetch()功能之外,什么都不做.
但它的内存耗尽引用我的表的大小(使用的空间),即尝试分配385 MB的进程内存:
允许的内存大小为134217728字节耗尽(试图分配385883840字节)
作为一个扳手,如果我使用一个查询,其结果集完全符合PHP进程的128 MB限制.
那么,PHP7已经改变了,我可以改回来吗?
我正在从PHP 5.6升级到PHP 7并且出现了一个奇怪的问题.
<?php
session_start();
$_SESSION['test'] = true;
$var = $_SESSION;
session_unset();
print_r($var);
Run Code Online (Sandbox Code Playgroud)
PHP 5.6输出:
Array
(
[test] => 1
)
Run Code Online (Sandbox Code Playgroud)
PHP 7输出:
Array
(
)
Run Code Online (Sandbox Code Playgroud)
我认为这是因为$_SESSION通过引用传递,但为什么?
我知道PHP7尚未发布,但是我想开始尝试,为了做到这一点,我最好继续使用PhpStorm.问题自然是它还没有语言支持.
我已经编译了PHP7源代码并将其作为解释器添加到PhpStorm,这令人惊讶地接受了,但这对语言级别没有任何影响.所以我的猜测是解释器用于调试,IDE使用自己的解析器来调试代码.
有没有人找到一种方法来获得对PHP7的支持?即使它是世界上最混乱的解决方案,也足够了.
在尝试在每个项目安装中使用php-7版本的Laravel Homestead时,我在以下期间看到此错误vagrant up:
php5-fpm: unrecognized service
我已经尝试vagrant destroy并重新安装了Vagrant盒子,但它仍然会回到这个错误.
全局使用Homestead时我没有收到错误.
怎么解决这个问题?
我最近安装了Windows Subsystem Ubuntu shell,并将我的所有开发从XAMPP转移到通过ubuntu windows子系统安装的nginx和php7.0-fpm.
我面临的问题是php文件加载速度极慢.对于测试我简单地说
<?php phpinfo(); ?>
Run Code Online (Sandbox Code Playgroud)
在一个文件中并执行它.字面上,系统花了两分钟才回复.我调试了很多,但找不到任何解决方案.
我通过nginx服务器块运行nginx并设置了我的本地域.
我确信通过观察如果我加载一个静态文件即txt或html文件,它会加载速度非常快.
下面是我的网站启用文件和nginx conf文件..
网站已启用
server {
listen 80 ;
listen [::]:80;
root /mnt/c/xampp/htdocs/doit/;
index index.html index.php;
server_name doit.dev www.doit.dev;
error_log /var/log/nginx/error.log;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_read_timeout 120;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
Run Code Online (Sandbox Code Playgroud)
Nginx配置文件:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on; …Run Code Online (Sandbox Code Playgroud)