-
-
Save Tosyn/fef6437dd3906ff200e471e478eaae95 to your computer and use it in GitHub Desktop.
#!/bin/bash | |
# PhalconPhp with PHP7 installation on ubuntu:16.04 | |
sudo apt-get update | |
sudo apt-get install -y php7.0-fpm \ | |
php7.0-cli \ | |
php7.0-curl \ | |
php7.0-gd \ | |
php7.0-intl \ | |
php7.0-pgsql \ | |
php7.0-mbstring \ | |
php7.0-xml \ | |
php-msgpack \ | |
curl \ | |
vim \ | |
wget \ | |
git | |
# For zephir installtion; the following packages are needed in Ubuntu: | |
sudo apt-get install -y gcc make re2c libpcre3-dev php7.0-dev build-essential php7.0-zip | |
# Install composer | |
sudo curl -sS http://getcomposer.org/installer | php | |
sudo mv composer.phar /usr/local/bin/composer | |
# Install zephir | |
sudo composer global require "phalcon/zephir:dev-master" | |
# Install phalcon dev tool | |
sudo composer require "phalcon/devtools" -d /usr/local/bin/ | |
sudo ln -s /usr/local/bin/vendor/phalcon/devtools/phalcon.php /usr/bin/phalcon | |
# Install phalconphp with php7 | |
sudo git clone https://github.com/phalcon/cphalcon.git -b 2.1.x --single-branch | |
cd cphalcon/ | |
sudo ~/.composer/vendor/bin/zephir build --backend=ZendEngine3 | |
sudo echo "extension=phalcon.so" >> /etc/php/7.0/fpm/conf.d/20-phalcon.ini | |
sudo echo "extension=phalcon.so" >> /etc/php/7.0/cli/conf.d/20-phalcon.ini | |
# some additional php settings if you care | |
sudo sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g" /etc/php/7.0/cli/php.ini | |
sudo sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g" /etc/php/7.0/fpm/php.ini | |
sudo sed -i "s/memory_limit = 128M/memory_limit = 256M /g" /etc/php/7.0/fpm/php.ini | |
# restart php-fpm | |
sudo service php7.0-fpm restart |
Warning: Function "mb_detect_encoding" does not exist at compile time in /root/cphalcon/phalcon/escaper.zep on 122 [nonexistent-function]
if mb_detect_encoding(str, charset, true) {
Maybe add
sudo apt-get install -y php7.0-mbstring
Also
apt install php-msgpack
@phpclub: thanks for the comment, I have updated the script accordingly.
Hi @vkill: thanks for the heads up, I have updated the script accordingly.
Install phalcon/devtools
should after installing phalconphp .
and I make a ansible role .
@vkill: The script already include phalcon/devtools setup. And nice job at the ansible role....i like.
Showed this error
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/phalcon.so' - /usr/lib/php/20151012/phalcon.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/phalcon.so' - /usr/lib/php/20151012/phalcon.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/phalcon.so' - /usr/lib/php/20151012/phalcon.so: cannot open shared object file: No such file or directory in Unknown on line 0
@donnes try this:
sudo chmod o+x /usr/lib/php/20151012/phalcon.so
I also had to set permissions for
/etc/php/7.0/fpm/conf.d/
/etc/php/7.0/cli/conf.d/
@MaxGaussDev thanks for helping out.
@MaxGaussDev This file don't exist on /usr/lib/php/20151012/
I need set permission to this folder?
And for
/etc/php/7.0/fpm/conf.d/
/etc/php/7.0/cli/conf.d/
I set same permission sudo chmod o+x
?
Thanks for helping
@donnes if the script ran successfully on your ubuntu 16.04 you should have the file ( /usr/lib/php/20151012/phalcon.so ) with permission already set to executable and you should not have to set any permission for this directory -> /etc/php/7.0/fpm/conf.d/ or any file in it.
Kindly confirm the script ran and completed successfully without error.
If the setup ran successfully please provide more details about what you are trying to do leading to PHP Warning: PHP Startup: ... error been generated.
@Tosyn Thanks, now all is working fine :D
@donnes awesome and you are welcome :)
i got this error can someone help ?
Failed to start LSB: Apache2 web server
@ucha19871 sorry about the late response. Reinstalling seems to fix same issue for most. Please try that and let's know if that fix it for you as well.
sudo apt-get --purge remove apache2*
sudo apt-get install apache2
sudo service apache2 restart
this doesnt work on me. i got too many error.. please see below
- on running composer
Do not run Composer as root/super user! See https://getcomposer.org/root for details
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Generating autoload files
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Using version ^3.0 for phalcon/devtools
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for phalcon/devtools ^3.0 -> satisfiable by phalcon/devtools[v3.0.0].
- phalcon/devtools v3.0.0 requires ext-phalcon ^3.0 -> the requested PHP extension phalcon is missing from your system.
To enable extensions, verify that they are enabled in those .ini files:
- /etc/php/7.0/cli/php.ini
- /etc/php/7.0/cli/conf.d/10-mysqlnd.ini
- /etc/php/7.0/cli/conf.d/10-opcache.ini
- /etc/php/7.0/cli/conf.d/10-pdo.ini
- after the build
Warning: Variable "_SESSION" assigned but not used in Phalcon\Session\Adapter::remove in /home/mark/fef6437dd3906ff200e471e478eaae95/cphalcon/phalcon/session/adapter.zep on 204 [unused-variable]
}
-^
Warning: Variable "beforeLine" assigned but not used in Phalcon\Debug::showTraceItem in /home/mark/fef6437dd3906ff200e471e478eaae95/cphalcon/phalcon/debug.zep on 339 [unused-variable]
beforeLine, firstLine, afterLine, lastLine, i, linePosition, currentLine;
-------------^
Warning: Function "\\sodium\\randombytes_buf" does not exist at compile time in /home/mark/fef6437dd3906ff200e471e478eaae95/cphalcon/phalcon/security/random.zep on 124 [nonexistent-function]
return \\Sodium\\randombytes_buf(len);
----------------------------------------^
Warning: Function "\\sodium\\randombytes_uniform" does not exist at compile time in /home/mark/fef6437dd3906ff200e471e478eaae95/cphalcon/phalcon/security/random.zep on 320 [nonexistent-function]
return \\Sodium\\randombytes_uniform(len) + 1;
---------------------------------------------^
Warning: Variable "singleField" declared but not used in Phalcon\Validation::rules in /home/mark/fef6437dd3906ff200e471e478eaae95/cphalcon/phalcon/validation.zep on 246 [unused-variable]
var validator, singleField;
----------------------------^
@besingamk 👍 I got the same issue while running this script within a ubuntu 16.04 based docker container.
Composer successfully installed to: /home/composer.phar
Use it: php composer.phar
Changed current directory to /root/.composer
Do not run Composer as root/super user! See https://getcomposer.org/root for details
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing phalcon/zephir (dev-master 7e304ba)
Cloning 7e304ba18c7e09b59ad62a3937c3de4d18427866
Failed to download phalcon/zephir from source: Failed to clone https://github.com/phalcon/zephir.git via https, ssh protocols, aborting.
- https://github.com/phalcon/zephir.git
Cloning into '/root/.composer/vendor/phalcon/zephir'...
fatal: unable to access 'https://github.com/phalcon/zephir.git/': Problem with the SSL CA cert (path? access rights?)
- [email protected]:phalcon/zephir.git
Cloning into '/root/.composer/vendor/phalcon/zephir'...
error: cannot run ssh: No such file or directory
fatal: unable to fork
Now trying to download from dist
- Installing phalcon/zephir (dev-master 7e304ba)
Downloading: 100%
Writing lock file
Generating autoload files
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Using version ^3.0 for phalcon/devtools
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for phalcon/devtools ^3.0 -> satisfiable by phalcon/devtools[v3.0.0].
- phalcon/devtools v3.0.0 requires ext-phalcon ^3.0 -> the requested PHP extension phalcon is missing from your system.
To enable extensions, verify that they are enabled in those .ini files:
- /etc/php/7.0/cli/php.ini
- /etc/php/7.0/cli/conf.d/10-opcache.ini
- /etc/php/7.0/cli/conf.d/10-pdo.ini
- /etc/php/7.0/cli/conf.d/15-xml.ini
- /etc/php/7.0/cli/conf.d/20-calendar.ini
- /etc/php/7.0/cli/conf.d/20-ctype.ini
- /etc/php/7.0/cli/conf.d/20-curl.ini
- /etc/php/7.0/cli/conf.d/20-dom.ini
- /etc/php/7.0/cli/conf.d/20-exif.ini
- /etc/php/7.0/cli/conf.d/20-fileinfo.ini
- /etc/php/7.0/cli/conf.d/20-ftp.ini
- /etc/php/7.0/cli/conf.d/20-gd.ini
- /etc/php/7.0/cli/conf.d/20-gettext.ini
- /etc/php/7.0/cli/conf.d/20-iconv.ini
- /etc/php/7.0/cli/conf.d/20-intl.ini
- /etc/php/7.0/cli/conf.d/20-json.ini
- /etc/php/7.0/cli/conf.d/20-mbstring.ini
- /etc/php/7.0/cli/conf.d/20-msgpack.ini
- /etc/php/7.0/cli/conf.d/20-pdo_pgsql.ini
- /etc/php/7.0/cli/conf.d/20-pgsql.ini
- /etc/php/7.0/cli/conf.d/20-phar.ini
- /etc/php/7.0/cli/conf.d/20-posix.ini
- /etc/php/7.0/cli/conf.d/20-readline.ini
- /etc/php/7.0/cli/conf.d/20-shmop.ini
- /etc/php/7.0/cli/conf.d/20-simplexml.ini
- /etc/php/7.0/cli/conf.d/20-sockets.ini
- /etc/php/7.0/cli/conf.d/20-sysvmsg.ini
- /etc/php/7.0/cli/conf.d/20-sysvsem.ini
- /etc/php/7.0/cli/conf.d/20-sysvshm.ini
- /etc/php/7.0/cli/conf.d/20-tokenizer.ini
- /etc/php/7.0/cli/conf.d/20-wddx.ini
- /etc/php/7.0/cli/conf.d/20-xmlreader.ini
- /etc/php/7.0/cli/conf.d/20-xmlwriter.ini
- /etc/php/7.0/cli/conf.d/20-xsl.ini
- /etc/php/7.0/cli/conf.d/20-zip.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
Installation failed, deleting ./composer.json.
@Tosyn I think what @vkill was saying is that the # Install phalcon dev tool
section should be at the end because it requires ext-phalcon which I'm guessing is phalcon? If you don't already have a version of phalcon installed than the dev tool install will fail. Incidentally, it doesn't matter because if you install compile this build it will still fail because the version number is different 2.1.0r
vs 3.0.1
. To fix this @ndaidong and @besingamk you need to add --ignore-platform-reqs
to the composer install. i.e."
sudo composer require "phalcon/devtools" -d /usr/local/bin/ --ignore-platform-reqs
Just to be clear. I haven't used composer very much and this is the first Phalcon install I've ever done. So, those worked for me but if someone has a better way let me know.
Also these lines didn't work for me:
sudo echo "extension=phalcon.so" >> /etc/php/7.0/fpm/conf.d/20-phalcon.ini
sudo echo "extension=phalcon.so" >> /etc/php/7.0/cli/conf.d/20-phalcon.ini
I got a permission denied error for some reason. I had to log into root and create the files manually.
Edit: Fixed my code formatting
Added note. To get this to work in the browser I had to:
sudo cp /etc/php/7.0/cli/conf.d/20-phalcon.ini /etc/php/7.0/apache2/conf.d/20-phalcon.ini
sudo service apache2 restart
Another update. In order to get devtools to run I had to comment out lines 58 - 63 of phalcon.php to prevent it from doing the version check. Haven't run it yet to see it works, but I had to do that just to get phalcon commands
to work.
throw new Exception(
sprintf(
"Your Phalcon version isn't compatible with Developer Tools, download the latest at: %s",
Script::DOC_DOWNLOAD_URL
)
);
If anyone else stumbles on to this there is now a stable build of phalcon 3.0.x for php 7 and ubuntu 16.04 on the phalconphp website under the downloads section.
How to run phalcon devtools,i want create project in terminal ???
Easy way:
curl -s "https://packagecloud.io/install/repositories/phalcon/stable/script.deb.sh" | sudo bash
sudo apt-get install php5-phalcon
Ubuntu 16.04+, Debian 9+
sudo apt-get install php7.0-phalcon
If you are on Linux Mint 18 you can get E: Unable to locate package php7.0-phalcon when trying to install php7.0-phalcon.
You can fix it with: sudo apt-add-repository ppa:ondrej/php && sudo apt-get update
@DracoPL thank you so much for your help. Been trying to install phalcon on linux mint serena and failed for about 3 hours... Your solution worked like a charm :D
how install phalcon with xampp in ubuntu 16.04? please help me ..
It works on ubuntu 16.04.3!!!
It works on Debian 9.3 ! Thank you !!
@amirshakya2010: That looks like permission error. Confirm sudo is installed and that you have permission to move composer.phar to /usr/local/bin/composer (referring to # Install composer section of the script.)