User Tools

Site Tools


operating_systems:apple:apache_-_php_-_mysql

This is an old revision of the document!


Apache - PHP - MySQL

Apache

Edit the apache2 hosts configuration files (per user)

# cd /etc/apache2/users/
# ls
Guest.conf	username.conf
# cat username.conf
NameVirtualHost *:80

<VirtualHost *:80>
ServerName localhost
DocumentRoot /Users/username/Sites
<Directory "/Users/username/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName myDomain
DocumentRoot /Users/username/Sites/.../myDir
<Directory "/Users/sbolay/Sites/.../myDir/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
If you have a Forbidden 403 error : since the version 2.4+ of Apache, “Order allow,deny” and “Allow from all” are deprecated. Now use “Require all granted” instead.

Hosts

Add the hostname to resolve
$sudo -e /private/etc/hosts
  127.0.0.1       localhost
  127.0.0.1       myHost
  
  255.255.255.255 broadcasthost
  ::1             localhost
  fe80::1%lo0     localhost
  

HTTPD.CONF

Uncomment both lines below

$sudo -e /private/etc/apache2/httpd.conf
  LoadModule userdir_module libexec/apache2/mod_userdir.so
  # User home directories
  Include /private/etc/apache2/extra/httpd-userdir.conf
  
Active modules and includes
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
# Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf
error_log problem

/var/log/apache2/error_log

[Fri Jul 22 11:41:43.182364 2016] [core:alert] [pid 737] [client 127.0.0.1:49399] /Users/mferreira/Sites/GIT/easyaccess-web/.htaccess: Invalid command 'php_value', perhaps misspelled or defined by a module not included in the server configuration

For version 5 of php, uncomment this line

LoadModule php5_module libexec/apache2/libphp5.so

httpd-userdir.conf

Uncomment in /private/etc/apache2/extra/httpd-userdir.conf

Include /private/etc/apache2/users/*.conf

PHP

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20090626/gettext.so' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20090626/gettext.so, 9): image not found in Unknown on line 0

Install php for mac from http://php-osx.liip.ch

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6
curl -s http://php-osx.liip.ch/install.sh | bash -s 7.0

Copy the php.ini file

$sudo cp /private/etc/php.ini.default /private/etc/php.ini

MySQL

Install MySQL from http://dev.mysql.com/downloads/mysql/ (e.g. mysql-5.6.12-osx10.7-x86_64) and start it

$sudo installer -pkg /Users/"user"/Downloads/mysql-5.7.14-osx10.11-x86_64.pkg -target /Volumes/Macintosh\ SSD
$sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
$/usr/local/mysql/bin/mysqladmin -u root -p password NEWPASSWORD
export PATH="/usr/local/mysql/bin:$PATH"
Il se peut que /Library/StartupItems/MySQLCOM/MySQLCOM n'existe pas sur le système. Il faut aller sous préférences système → MySQL → Start et cocher AUtomatically STart on Startup
Warning: mysqli_connect(): (HY000/2002): No such file or directory in /Users/bfavre/Sites/git/easyaccess-web/lib/lib_dbconnection.php on line 27 Could not connect to server (2002) No such file or directory
mkdir /private/var/mysql/
ln -s /tmp/mysql.sock /private/var/mysql/

<note tip>If you have the error "ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement."</note>

gettext

[Wed Jun 26 19:21:19 2013] [error] [client ::1] PHP Fatal error: Call to undefined function bindtextdomain() in /Users/sbolay/Sites/GIT/easyaccess-web/lib/lib_language.php on line 66

Download gettext from https://www.gnu.org/software/gettext/

wget http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.3.1.tar.gz
tar -xzf gettext-0.18.3.1.tar.gz
cd gettext-0.18.3.1
./configure
configure: error: in `/Users/mferreira/gettext-0.18.1.1/gettext-runtime':
configure: error: C compiler cannot create executables
See `config.log' for more details.
configure: error: ./configure failed for gettext-runtime

Si il y a cette error,

export PATH="/usr/bin:$PATH"

Relancer de nouveau

./configure
make all-am
/bin/sh ../libtool –tag=CC –mode=compile gcc -std=gnu99 -DHAVE_CONFIG_H -DEXEEXT=\“\” -DEXEEXT=\“\” -DEXEEXT=\“\” -I. -I.. -I../intl -I../intl -I.. -I.. -DDEPENDS_ON_LIBICONV=1 -DDEPENDS_ON_LIBINTL=1 -I../intl -I/usr/include/libxml2 -I./libcroco -g -O2 -c -o stpncpy.lo stpncpy.c
libtool: compile: gcc -std=gnu99 -DHAVE_CONFIG_H -DEXEEXT=\“\” -DEXEEXT=\“\” -DEXEEXT=\“\” -I. -I.. -I../intl -I../intl -I.. -I.. -DDEPENDS_ON_LIBICONV=1 -DDEPENDS_ON_LIBINTL=1 -I../intl -I
/usr/include/libxml2 -I./libcroco -g -O2 -c stpncpy.c -fno-common -DPIC -o .libs/stpncpy.o
stpncpy.c:34: error: expected declaration specifiers or '…' before numeric constant
stpncpy.c:34: error: expected ')' before '!=' token
stpncpy.c:34: error: expected ')' before '?' token
make[4]: * [stpncpy.lo] Error 1
make[3]:
* [all] Error 2
make[2]: * [all-recursive] Error 1
make[1]:
* [all] Error 2
make: *** [all-recursive] Error 1

Edit gettext-tools/gnulib-lib/stpncpy.c line 34

(__stpncpy) (char *dest, const char *src, size_t n)

and modify it to

(__stpcpy) (char *dest, const char *src, size_t n)

Recompile

make
make install

Add in php.ini the support for gettext

$sudo -e /private/etc/php.ini
  error_reporting = E_ALL
  extension=intl.so
  extension=gettext.so

Final

Restart Apache

$sudo apachectl restart
operating_systems/apple/apache_-_php_-_mysql.1486649751.txt.gz · Last modified: 2017/02/09 14:15 by kroduit