06.12.2020

Open Source Webserver For Mac High Sierra

Open Source Webserver For Mac High Sierra 8,6/10 6590 votes

How to create a bootable macOS High Sierra installer drive Put the macOS High Sierra installer on an external USB thumb drive or hard drive and use it to install the operating system on a Mac. Oct 04, 2017  Set up Virtual Hosts on macos High Sierra 10.13 in Apache October 4, 2017 Leave a Comment Setting up Virtual Hosts in Apache on on macOS High Sierra and OSX is straight forward after you have your local Web Development environment up and running – get your web development up and running first including Apache, PHP and MySQL on macOS following. Related: Install macOS High Sierra on VMware on Windows PC New Method However, they downgraded and are happily working with High Sierra now. Back when High Sierra released, everyone was that kinda less exciting and saying like “yeah there will be updates, but not so huge”, unlike Mojave that everyone was really super excited and waiting for. Ntfs for mac seagate sierra. Nov 04, 2017  AFP was Apple’s proprietary protocol; SMB is the open source, windows-compatible protocol Apple now recommends. AFP is incompatible with APFS, Apple’s new file system, so that option will be greyed out on APFS drives, as shown above. If youshare a folder on a macOS Extended (HFS+) drive, you’ll still have the option for AFP.

Turn on Apache

  1. Open Terminal by clicking on the magnifying glass at the top right corner of your screen and searching for Terminal
  2. Type sudo apachectl start and press enter
  3. Open Safari (or your browser of choice), type localhost in the address bar, and press enter

Can’t believe it’s that easy? It is! You should now see It works! in the browser.

Turn on PHP

Mac already comes with PHP, so you don’t need to install it from PHP.net. Before High Sierra (version 10.13), Mac came with PHP 5 installed. This caused users to get annoyed because it didn’t come with PHP 7, so you’d have to go through extra work to upgrade from PHP 5 to PHP 7. Thankfully High Sierra already comes with PHP 7.1!!!

  1. Open Terminal and type sudo nano /etc/apache2/httpd.conf and press enter
  2. Press Ctrl+W which will bring up a search
  3. Search for php and press enter. You’ll see the following:
  4. Delete the # from #LoadModule php7_module libexec/apache2/libphp7.so
  5. Press Ctrl+O followed by Enter to save the change you just made
  6. Press Ctrl+X to exit nano
  7. Type sudo apachectl restart and press enter

You just turned PHP 7 on. Great work so far!

Create Sites Folder

  1. Click on Finder at the bottom left corner of your screen and click on Go > Home the top navigation bar. This will take you to your home directory, which will also be whatever your computer is named; in this case it's david.
  2. Create a new folder and name it Sites (The Safari icon shown below gets added automatically to the Sites folder as shown below)
  3. Open your favorite text editor and create a file called index.php with the following code:
  1. Save index.php in the Sites folder you created
  2. Go back to Terminal and enter sudo nano /etc/apache2/httpd.conf
  3. Press Ctrl+W to bring up search
  4. Search for Library and press enter. You should see this:
  5. Replace both occurrences of /Library/WebServer/Documents with /Users/david/Sites (instead of david use your name which can be found at the top of your terminal next to the home icon)
  6. Press Ctrl+O followed by Enter to save these changes
  7. Press Ctrl+X to exit nano
  8. Type sudo apachectl restart and press enter

Go back to Safari and refresh the localhost page and you’ll see Hello From Sites Folder! with PHP info that shows PHP 7 is being used.

Open source web server for mac high sierra requirements

Install MySQL

  1. Go to https://dev.mysql.com/downloads/mysql
  2. Scroll down until you see three download buttons and click on the one next to DMG Archive
  3. Scroll down and click No thanks, just start my download
  4. Click on the downloaded file, double click the pkg file, and go through the installation which should look like this:
  5. Once you get to the end of the installation, you’ll see a popup that gives you your MySQL username (root) and password (8hxKsiIh?YMt). Your password will be different. Copy the password to text file (or take a screenshot) and press okay. Do this now, as it will be pain to reset the password if you don't know it.
  6. Press the Apple logo at the top left of your screen and go to System Preferences
  7. Click on MySQL and you’ll see that it’s turned off
  8. Press Start MySQL Server to turn it on and you’ll see:
  9. Go back to Terminal and type sudo /usr/local/mysql/bin/mysql -u root -p
  10. When you press enter it will ask you for your Password. This is the password you use when you login to your Mac
  11. Then it says Enter Password: which is 8hxKsiIh?YMt for me (you should use the password you copied earlier instead of 8hxKsiIh?YMt). You’ll see this screen:
  12. Type ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword'; and press enter
  13. Go to https://www.sequelpro.com and download Sequel Pro. This is like phpMyAdmin, but better because it’s a desktop app.
  14. Go through the installation, open Sequel Pro, and enter 127.0.0.1 for the Host. Enter root for the Username and newpassword for the Password. Press Connect
  15. Click Choose Database… at the top left followed by Add Database…
  16. Give it the name mydb and press enter
  17. Then click the plus sign at the bottom left to create a new table. Name the table mytable and press add
  18. Click the plus sign right above the word INDEXES and name the field message. Set the type to VARCHAR and give it a length of 200.
  19. Click on Content at the top.
  20. Click the plus sign at the bottom (the one to the left of the minus sign)
  21. Give the new entry an id of 1 and set the message to MySQL works perfectly!
  22. Open index.php in your Sites folder and change the code to

Obviously this example is immune to SQL injection, since there are no user-inputted values. However, if you don’t understand MySQLi prepared statements as well as you’d like, check out this post for an excellent tutorial on how to prevent SQL injection 😉. There's even a PDO version, if you prefer that more.

  1. Refresh localhost on Safari and you should see:

Great! You now have MySQL working, so you can use localhost to store information in databases.

Make SEO Friendly URLs Work

Instead of going to localhost/profile.php?user=david, it looks nicer when you can go to localhost/profile/david. Let’s make this work by enabling mod_rewrite so you can use RewriteRules.

  1. Go to Terminal and type sudo nano /etc/apache2/httpd.conf followed by pressing enter
  2. Press Ctrl+W, type rewrite, and press enter
  3. Remove the # in #LoadModule rewrite_module libexec/apache2/mod_rewrite.so
  4. Press Ctrl+O followed by Enter to save
  5. Press Ctrl+X to exit nano
  6. Type sudo apachectl restart

Now you can use friendly URLs when you develop using localhost.

Make .htaccess Work

This isn't necessary to make vanity URLs work, but I personally prefer using an .htaccess file, as it allows me version control it.

  1. Go to Terminal and type sudo nano /etc/apache2/httpd.conf followed by pressing enter
  2. Press Ctrl+W, type AllowOverride controls, and press enter
  3. Change AllowOverride None to AllowOverride All
  4. Press Ctrl+O followed by Enter to save
  5. Press Ctrl+X to exit nano
  6. Type sudo apachectl restart

Now you can add a .htaccess file in the Sites folder and it will work well.

Turn On SSL/HTTPS

Instead of accessing your website through localhost, you might want to access your website by going to https://localhost. If you turn on SSL, you’ll see a padlock next to localhost in the URL bar.

  1. Go to Terminal and type sudo nano /etc/apache2/httpd.conf followed by pressing enter
  2. Press Ctrl+W, type socache_shmcb_module, and press enter
  3. Delete the # from #LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
  4. Press Ctrl+W, type mod_ssl, and press enter
  5. Delete the # from #LoadModule ssl_module libexec/apache2/mod_ssl.so
  6. Press Ctrl+W, type httpd-ssl, and press enter
  7. Delete the # from #Include /private/etc/apache2/extra/httpd-ssl.conf
  8. Press Ctrl+O followed by Enter to save
  9. Press Ctrl+X to exit nano
  10. Type sudo nano /etc/apache2/extra/httpd-ssl.conf and press enter
  11. Press Ctrl+W, type ServerName, and press enter
  12. Replace www.example.com:443 with localhost
  13. Right above you’ll see /Library/WebServer/Documents. Replace that with /Users/david/Sites. (Use your name instead of david just like you did earlier)
  14. Right underneath <VirtualHost_default_:443> add (but make sure to replace david with your name):
  1. Your terminal should now look like this:
  2. Press Ctrl+O followed by Enter to save
  3. Press Ctrl+X to exit nano
  4. Type sudo nano /etc/ssl/openssl.cnf and press enter
  5. At the bottom of openssl.cnf add this:
  1. Your terminal should look like this:
  2. Press Ctrl+O followed by Enter to save
  3. Press Ctrl+X to exit nano
  4. Type

and press enter. (You can use your information instead, but don’t change localhost)

  1. Type

and press enter

  1. Type sudo apachectl restart
  2. Now go to https://localhost in your browser, and you’ll see a padlock next to the url which means you’re done setting up SSL!

As always, if you have any questions please leave them in the comments, and we’ll do our best to help you.

Get your Local Web Development Environment Up & Running on macOS High Sierra 10.13

With Apples’ new macOS High Sierra 10.13 available for download, here is how to get the AMP stack up and running on the new macOS. This tutorialwill go through the process on getting Apache, MySQL, PHP (or otherwise known as the ‘AMP’ stack)and phpMyAdmin running on the new mac OS High Sierra.

This tutorial sets up the AMP stack in more of a traditional way using the loaded Apache and PHP and downloading MySQL and phpMyAdmin.

Setting Stuff Up

Apache/WebSharing

Web serving is built into High Sierra with Apache app, it is installed ready to be fired up.

This needs to be done in the Terminal which is found in the OS filing system at /Applications/Utilities/Terminal

For those not familiar with the Terminal, it really isn’t as intimidating as you may think, once launched you are faced with a command prompt waiting for your commands – just type/paste in a command and hit enter, some commands give you no response – it just means the command is done, other commands give you feedback.

Using the prefix of sudo is required for commands that have their applications protected in certain folders – when using sudo you will need to confirm with your admin password or iCloud password if set up that way…. lets get to it….

to start Apache web sharing

to stop it

to restart it

To find the Apache version

The Apache version that comes in macOS High Sierra is Apache/2.4.27

After starting Apache – test to see if the webserver is working in the browser – http://localhost – you should see the “It Works!” text.

If you don’t get the localhost test, you can try troubleshooting Apache to see if there is anything wrong in its config file by running

This will give you an indication of what might be wrong.

Document Root

Document root is the location where the files are shared from the file system and is similar to the traditional names of ‘public_html‘ and ‘htdocs‘, macOS has historically had 2 web roots one at a system level and one at a user level – you can set both up or just run with one, the user level one allows multiple accounts to have their own web root whilst the system one is global for all users. It seems there is less effort from Apple in continuing with the user level one but it still can be set up with a couple of extra tweaks in configuration files. It is easier to use the user level one as you don’t have to keep on authenticating as an admin user.

System Level Web Root

– the default system document root is still found at –

http://localhost/

The files are shared in the filing system at –

User Level Root

The other web root directory which is missing by default is the ‘~/Sites’ folder in the User account. This takes a bit longer to set up but some users are very accustomed to using it.

You need to make a “Sites” folder at the root level of your account and then it will work. Once you make the Sites folder you will notice that it has a unique icon which is a throwback from a few versions older. Make that folder before you set up the user configuration file described next.

You have to make a few additional tweaks to get the ~/Sites folder back up and running.

Sites Folder

Add a “username.conf” filed under:

If you don’t already have one (very likely), then create one named by the short username of the account with the suffix .conf, its location and permissions/ownership is best tackled by using the Terminal, the text editor ‘nano‘ would be the best tool to deal with this.

If you would rather edit config files in a text editor as an app I would suggest the free BBEdit which allows you to open hidden system files.

Launch Terminal, (Applications/Utilities), and follow the commands below, first one gets you to the right spot, 2nd one opens the text editor on the command line (swap ‘username‘ with your account’s shortname, if you don’t know your account shortname type ‘whoami‘ the Terminal prompt):

Then add the content below swapping in your ‘username’ in the code below:

Permissions on the file should be:

If not you need to change…

Open the main httpd.conf and allow some modules:

And make sure these modules are uncommented (the first 2 should already be on a clean install):

Whilst you have this file open also to get php running uncomment. (Mentioned also in the PHP part of the article).

And also uncomment this configuration file also in httpd.conf – which allows user home directories.

Save all your changes (Control + O in nano)

Then open another Apache config file and uncomment another file:

And uncomment:

Save all your changes (Control + O in nano)

Restart Apache for the new file to be read:

Then this user level document root will be viewable at:

http://localhost/~username/

You should only see a directory tree like structure if the folder is empty.

Override .htaccess and allow URL Rewrites

If you are going to use the web serving document root at /Library/WebServer/Documents it is a good idea to allow any .htaccess files used to override the default settings – this can be accomplished by editing the httpd.conf file at line 217 and setting the AllowOverride to All and then restart Apache. This is already taken care of at the Sites level webroot by following the previous step.

Also whilst here allow URL rewrites so your permalinks look clean not ugly.

Uncomment in httpd.conf – should be uncommented on a clean install.

PHP

PHP 7.1.7 is a first for macOS and is loaded in this version of macOS High Sierra and needs to be turned on by uncommenting a line in the httpd.conf file.

Use “control” + “w” to search within nano and search for ‘php’ this will land you on the right line then uncomment the line (remove the #):

Write out and Save using the nano short cut keys at the bottom ‘control o’ and ‘control x’

Reload apache to kick in

To see and test PHP, create a file name it “phpinfo.php” and file it in your document root with the contents below, then view it in a browser.

MySQL

MySQL doesn’t come pre-loaded with macOS High Sierra and needs to be dowloaded from the MySQL site.

The latest version of MySQL 5.7.19 does work with the public release of macOS.

If you already have MySQL 5.7 and you have upgraded OS from El Capitan to Sierra I expect that to be ok, but will be interested if anyone comments on that.

Use the Mac OS X 10.12 (x86, 64-bit), DMG Archive version (works on macOS High Sierra).

If you are upgrading from a previous macOS and have an older MySQL version you do not have to update it. One thing with MySQL upgrades always take a data dump of your database in case things go south and before you upgrade to macOS High Sierra make sure your MySQL Server is not running.

When downloading you don’t have to sign up, look for » No thanks, just take me to the downloads! – go straight to the download mirrors and download the software from a mirror which is closest to you.

Once downloaded open the .dmg and run the installer.

When it is finished installing you get a dialog box with a temporary mysql root password – that is a MySQL root password not a macOS admin password. But I have found that the temporary password is pretty much useless so we’ll need to change it straight away, but first it is better to add mysql commands to your shell path.

You are told:

If you lose this password, please consult the section How to Reset the Root Password in the MySQL reference manual.

Add Mysql to your path

After installation, in order to use mysql commands without typing the full path to the commands you need to add the mysql directory to your shell path, (optional step) this is done in your “.bash_profile” file in your home directory, if you don’t have that file just create it using vi or nano:

The first command brings you to your home directory and opens the .bash_profile file or creates a new one if it doesn’t exist, then add in the line above which adds the mysql binary path to commands that you can run. Exit the file with type “control + x” and when prompted save the change by typing “y”. Last thing to do here is to reload the shell for the above to work straight away.

Change the MySQL root password

Note that this is not the same as the root or admin password of macOS – this is a unique password for the mysql root user.

Stop MySQL

Start it in safe mode:

This will be an ongoing command until the process is finished so open another shell/terminal window, and log in without a password as root:

Change the lowercase ‘MyNewPass’ to what you want – and keep the single quotes.

Start MySQL

Starting MySQL

You can then start the MySQL server from the System Preferences or via the command line.

Or to Command line start MySQL.

To find the MySQL version from the terminal, type at the prompt:

This also puts you in to a shell interactive dialogue with mySQL, type q to exit.

Fix the 2002 MySQL Socket error

Fix the looming 2002 socket error – which is linking where MySQL places the socket and where macOS thinks it should be, MySQL puts it in /tmp and macOS looks for it in /var/mysql the socket is a type of file that allows mysql client/server communication.

Open Source Webserver For Mac High Sierra Pro

phpMyAdmin

First fix the 2002 socket error if you haven’t done so from the MySQL section-

Download phpMyAdmin, the zip English package will suit a lot of users, then unzip it and move the folder with its contents into the document root level renaming folder to ‘phpmyadmin’.

Make the config folder

Change the permissions

Open Source Web Server For Mac High Sierra Requirements

Run the set up in the browser

For

http://localhost/~username/phpmyadmin/setup/ orhttp://localhost/phpmyadmin/setup/

You need to create a new localhost mysql server connection, click new server.


Switch to the Authentication tab and set the local mysql root user and the password.
Add in the username “root” (maybe already populated, add in the password that you set up earlier for the MySQL root user set up, click on save and you are returned to the previous screen.
(This is not the macOS Admin or root password – it is the MySQL root user)

Now going to http://localhost/~username/phpmyadmin/ will now allow you to interact with your MySQL databases.

Permissions

To run a website with no permission issues it is best to set the web root and its contents to be writeable by all, since it’s a local development it shouldn’t be a security issue.

Lets say that you have a site in the User Sites folder at the following location ~/Sites/testsite you would set it to be writeable like so:

Open Source Web Server For Mac High Sierra Update

If you are concerned about security then instead of making it world writeable you can set the owner to be Apache _www but when working on files you would have to authenticate more as admin you are “not” the owner, you would do this like so:

This will set the contents recursively to be owned by the Apache user.

If you had the website stored at the System level Document root at say /Library/WebServer/Documents/testsite then it would have to be the latter:

Another easier way to do this if you have a one user workstation is to change the Apache web user from _www to your account.

Open Source Web Server For Mac High Sierra Upgrade

That’s it! You now have the native AMP stack running on top of macOS High Sierra.

Open Source Web Server For Mac High Sierra 10 13

Related