1) You must have someone knowledgeable in database management and PHP. This can be yourself or someone you trust. Ask to see work someone has done for others and try to get references. It is important to have this because then any downtime for your website will be reduced since you will not have to wait for support from your webhost who may or may not know the solution. It is also helpful because you may need to add features to your website in the future.
2) The most important thing is to make sure what you want your community to be about is something you have interest in. You will automatically be more motivated to perform essential tasks this way. You should also choose something that doesn't have tons of communities that already exist.
3) Use a proper top level domain if you want it to grow. Don't use a domain name like something.tk either. The use of .com and .net are good choices. The use of other endings may be good if your website is in a language other than English. People will tend to remember better if it is a .com or .net also. Make sure the domain name also isn't extremely long or visitors will forget the url. By having a relevant domain name and having it be a .com or .net you will have a better SEO score.
4) Don't use free web hosts. Many of them have bad uptime because they overload their servers. They also tend to automatically place ads on your site to help them cover costs. Free web hosts may also be more restrictive on resource consumption or disabling certain PHP functions. If things are breaking because of those restrictions or uptime is bad, you'll lose visitors.
5) Content is a big key on getting visitors. You need to be creating unique content on a regular basis. You shouldn't just let that be the work of visitors. It also helps your SEO score so others can find your website easier.
6) Use friendly urls. This means you should try and have links with urls that use words rather than a random id. Some forum softwares have this functionality as a plugin. You can also use Rewrite Rules in a .htaccess file so you can have pretty urls.
7) Listen to your users. Remember that it isn't always about you. It is about making the website better for everyone. Sometimes this means creating a balance between features and performance. You may find a plugin that does something really cool for your website, but if it makes it really slow, it isn't worth it. Slow page load times will cause you to lose potential members.
8) Don't make too many members moderators. This is a common problem, especially with smaller websites. There isn't a magic formula that works for every community, but in general you shouldn't have more than 2 moderators if you only have 50 - 100 members that are regular visitors. If you can't name every moderator on your website, you probably have too many.
9) Make sure your moderators are active. They can't just post only in staff only areas of your website. It will make the moderator seem both distant and undeserving to others. If someone is only doing backend work and not involved in making decisions in your community, you should consider having their display group be that of a member or it will lead to awkward questions.
10) Don't overmoderate content. You shouldn't have moderators lock topics unless absolutely necessary. It is killing a discussion that members can participate in.
11) Be firm, but fair in consequences for rulebreaking. A bot that signs up and posts some kind of ad you can ban permanently, but if its just something small a member does and they keep doing it, just talk to them first. However you decide to implement rules you need to be consistent. Also adopt a policy of members not being allowed to talk about disciplinary actions with anyone other than staff.
12) Create activities that are long lasting on a consistent basis. Maybe have a contest once a month. If members are expecting it, participation will grow in future contests.
13) Don't send excessive emails to members of the community. You should also make sure there is an option to disable emails from the community. This makes sure if a person doesn't want to receive emails, they won't.
14) Use social media sites like Facebook and Twitter to advertise your website and what is going on. With millions of users on those platforms, you can gain more exposure. You may also choose to pay for advertising to get a boost. Make sure you have a decent amount of content before paying for advertising otherwise you might get visitors, but they won't stay since you have no content that interests them.